浏览代码

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

git-svn-id: trunk@39592 -
michael 7 年之前
父节点
当前提交
6603bf149a
共有 1 个文件被更改,包括 7 次插入1 次删除
  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;