Browse Source

* Fix releasobjectid

Michael Van Canneyt 5 months ago
parent
commit
d7ac63abd7
1 changed files with 5 additions and 17 deletions
  1. 5 17
      packages/job/src/job_browser.pp

+ 5 - 17
packages/job/src/job_browser.pp

@@ -74,7 +74,6 @@ Type
     FGlobalObjects: TJSArray; // id to TJSObject
     FGlobalNames: TJSObject; // name to id
     FLocalObjects: TJSArray;
-    FFreeLocalIds: TJSArray; // free positions in FLocalObjects
     FOnCallBackJSError: TCallbackErrorJSEventHandler;
     FOnCallBackPasError: TCallbackErrorPasEventHandler;
     FStringResult: string;
@@ -251,7 +250,6 @@ begin
   RegisterGlobalObjects;
   FLocalObjects:=TJSArray.new;
   FLocalObjects.push(nil); // allocate FLocalObjects[0]
-  FFreeLocalIds:=TJSArray.new;
   FFactories:=TJSObject.New;
 end;
 
@@ -349,20 +347,10 @@ begin
 end;
 
 function TJSObjectBridge.RegisterLocalObject(Obj: TJSObject): TJOBObjectID;
-var
-  NewId: JSValue;
+
 begin
-  NewId:=FFreeLocalIds.pop;
-  if isUndefined(NewId) then
-  begin
-    NewId:=FLocalObjects.push(Obj)-1;
-    Result:=TJOBObjectID(NewId);
-    FLastAllocatedID:=Result;
-  end
-  else begin
-    Result:=TJOBObjectID(NewId);
-    FLocalObjects[Result]:=Obj;
-  end;
+  Result:=GetObjectID;
+  RegisterLocalObjectAt(Obj,Result);
   {$IFDEF VerboseJOB}
   writeln('TJSObjectBridge.RegisterLocalObject ',Result);
   {$ENDIF}
@@ -814,7 +802,8 @@ begin
   if FLocalObjects[ObjId]=nil then
     raise EJOBBridge.Create('object already released');
   FLocalObjects[ObjId]:=nil;
-  FFreeLocalIds.push(ObjId);
+  ReleaseJobID(ObjID);
+
   Result:=JOBResult_Success;
 end;
 
@@ -1306,7 +1295,6 @@ end;
 function TJSObjectBridge.GetStats: TJSObjectBridgeStats;
 begin
   Result.LastAllocatedID:=FLastAllocatedID;
-  Result.FreeIDCount:=FFreeLocalIds.Length;
   Result.LiveObjectCount:=FLocalObjects.Length;
   Result.GlobalObjectCount:=FGlobalObjects.Length;
 end;