|
@@ -517,6 +517,7 @@ interface
|
|
function elecount : asizeuint;
|
|
function elecount : asizeuint;
|
|
constructor create_from_pointer(def:tpointerdef);virtual;
|
|
constructor create_from_pointer(def:tpointerdef);virtual;
|
|
constructor create(l,h:asizeint;def:tdef);virtual;
|
|
constructor create(l,h:asizeint;def:tdef);virtual;
|
|
|
|
+ constructor create_openarray;virtual;
|
|
class function getreusable(def: tdef; elems: asizeint): tarraydef; virtual;
|
|
class function getreusable(def: tdef; elems: asizeint): tarraydef; virtual;
|
|
{ same as above, but in case the def must never be freed after the
|
|
{ same as above, but in case the def must never be freed after the
|
|
current module has been compiled -- even if the def was not written
|
|
current module has been compiled -- even if the def was not written
|
|
@@ -3616,6 +3617,12 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
+ constructor tarraydef.create_openarray;
|
|
|
|
+ begin
|
|
|
|
+ self.create(0,-1,sizesinttype)
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+
|
|
class function tarraydef.getreusable(def: tdef; elems: asizeint): tarraydef;
|
|
class function tarraydef.getreusable(def: tdef; elems: asizeint): tarraydef;
|
|
var
|
|
var
|
|
res: PHashSetItem;
|
|
res: PHashSetItem;
|
|
@@ -3650,6 +3657,7 @@ implementation
|
|
result:=tarraydef(res^.Data);
|
|
result:=tarraydef(res^.Data);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+
|
|
class function tarraydef.getreusable_no_free(def: tdef; elems: asizeint): tarraydef;
|
|
class function tarraydef.getreusable_no_free(def: tdef; elems: asizeint): tarraydef;
|
|
begin
|
|
begin
|
|
result:=getreusable(def,elems);
|
|
result:=getreusable(def,elems);
|
|
@@ -3665,6 +3673,7 @@ implementation
|
|
inherited;
|
|
inherited;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+
|
|
constructor tarraydef.create_from_pointer(def:tpointerdef);
|
|
constructor tarraydef.create_from_pointer(def:tpointerdef);
|
|
begin
|
|
begin
|
|
{ divide by the element size and do -1 so the array will have a valid size,
|
|
{ divide by the element size and do -1 so the array will have a valid size,
|