Browse Source

* Amend Patch for bug id #21594, fixing possible AV in corner cases

git-svn-id: trunk@39592 -
michael 7 years ago
parent
commit
6603bf149a
1 changed files with 7 additions and 1 deletions
  1. 7 1
      packages/fcl-db/src/base/datasource.inc

+ 7 - 1
packages/fcl-db/src/base/datasource.inc

@@ -73,6 +73,12 @@ Procedure TDataLink.CalcRange;
 var
     aMax, aMin: integer;
 begin
+  // During loading, dataset may not be set yet.
+  If (Dataset=Nil) then
+    begin
+    FFirstRecord:=0; 
+    exit;
+    end;
   aMin:= DataSet.FActiveRecord - FBufferCount + 1;
   If aMin < 0 Then aMin:= 0;
   aMax:= Dataset.FBufferCount - FBufferCount;
@@ -609,8 +615,8 @@ begin
     End;
   If ADataset<>Nil Then
     begin
-    ADataset.RegisterDatasource(Self);
     FDataSet:=ADataset;
+    ADataset.RegisterDatasource(Self);
     ProcessEvent(deUpdateState,0);
     End;
 end;