@@ -44,9 +44,7 @@ interface
44
44
{ $ENDIF}
45
45
EMPTY_HASH = -1 ;
46
46
47
- { .$.DEFINE TRACK_CLASSES }
48
-
49
- { $IFDEF TRACK_CLASSES}
47
+ { $IFDEF OBJECT_TRACKING}
50
48
const
51
49
CLASS_NAME_OF_INTEREST = ' TFhirString' ;
52
50
ID_OF_INTEREST = -1 ;
@@ -171,19 +169,15 @@ EJsonException = class (EFslException); // error reading or writing Json
171
169
FTagObject : TObject;
172
170
FOwningThread : TThreadId;
173
171
FMagic : integer;
174
- { $IFDEF TRACK_CLASSES}
175
- FNamedInstance : string;
176
- { $ENDIF}
177
- { $IFOPT D+}
172
+ { $IFDEF OBJECT_TRACKING}
178
173
// This is a workaround for the delphi debugger not showing the actual class of an object that is polymorphic
179
174
// It's sole purpose is to be visible in the debugger. No other functionality should depend on it
180
175
FNamedClass : TNameString;
181
176
FDebugInfo : String;
182
- { $ENDIF}
183
- { $IFDEF OBJECT_TRACKING}
184
177
FSerial : integer;
185
178
FNext, FPrev : TFslObject; // same class type
186
179
FThreadName : String;
180
+ FNamedInstance : string;
187
181
{ $ENDIF}
188
182
189
183
function ObjectCrossesThreads : boolean;
@@ -214,7 +208,7 @@ EJsonException = class (EFslException); // error reading or writing Json
214
208
Function ErrorClass : EFslExceptionClass; Overload; Virtual ;
215
209
216
210
function sizeInBytesV (magic : integer) : cardinal; virtual ;
217
- { $IFDEF TRACK_CLASSES }
211
+ { $IFDEF OBJECT_TRACKING }
218
212
procedure freeNotification (done : boolean); virtual ;
219
213
{ $ENDIF}
220
214
Public
@@ -244,13 +238,9 @@ EJsonException = class (EFslException); // error reading or writing Json
244
238
245
239
Property FslObjectReferenceCount : TFslReferenceCount Read FFslObjectReferenceCount;
246
240
property TagObject : TObject read FTagObject write FTagObject; // no ownership....
247
- { $IFDEF TRACK_CLASSES }
241
+ { $IFDEF OBJECT_TRACKING }
248
242
property NamedInstance : string read FNamedInstance write FNamedInstance;
249
- { $ENDIF}
250
- { $IFOPT D+}
251
243
property NamedClass : TNameString read FNamedClass;
252
- { $ENDIF}
253
- { $IFDEF OBJECT_TRACKING}
254
244
property SerialNumber : integer read FSerial;
255
245
{ $ENDIF}
256
246
function debugInfo : String; virtual ; // what's visible to the debugger
@@ -1047,17 +1037,13 @@ constructor TFslObject.Create;
1047
1037
{ $ENDIF}
1048
1038
Begin
1049
1039
Inherited ;
1050
- { $IFOPT D+}
1051
- FNamedClass := copy(ClassName, 1 , 16 );
1052
- { $ENDIF}
1053
1040
FOwningThread := GetCurrentThreadId;
1054
1041
1055
- { $IFDEF TRACK_CLASSES }
1042
+ { $IFDEF OBJECT_TRACKING }
1056
1043
if (className = CLASS_NAME_OF_INTEREST) then
1057
1044
freeNotification(false);
1058
- { $ENDIF}
1059
1045
1060
- { $IFDEF OBJECT_TRACKING }
1046
+ FNamedClass := copy(ClassName, 1 , 16 );
1061
1047
if not GInited then
1062
1048
initUnit;
1063
1049
if Assigned(GetThreadNameStatusDelegate) then
@@ -1079,7 +1065,7 @@ constructor TFslObject.Create;
1079
1065
inc(t.deltaCount);
1080
1066
inc(t.serial);
1081
1067
FSerial := t.serial;
1082
- { $IFDEF TRACK_CLASSES }
1068
+ { $IFDEF OBJECT_TRACKING }
1083
1069
if (t.serial = ID_OF_INTEREST) and (className = CLASS_NAME_OF_INTEREST) then
1084
1070
NamedInstance := ' !' ;
1085
1071
{ $ENDIF}
@@ -1207,7 +1193,7 @@ procedure TFslObject.Free;
1207
1193
clsName := ' n/a' ;
1208
1194
nmCls := ' n/a' ;
1209
1195
try
1210
- { $IFOPT D+ }
1196
+ { $IFDEF OBJECT_TRACKING }
1211
1197
nmCls := FNamedClass;
1212
1198
{ $ENDIF}
1213
1199
except
@@ -1235,7 +1221,7 @@ clsName := className;
1235
1221
dec(FFslObjectReferenceCount);
1236
1222
done := FFslObjectReferenceCount < 0 ;
1237
1223
end ;
1238
- { $IFDEF TRACK_CLASSES }
1224
+ { $IFDEF OBJECT_TRACKING }
1239
1225
if (classname = CLASS_NAME_OF_INTEREST) then
1240
1226
self.freeNotification(done);
1241
1227
{ $ENDIF}
@@ -1352,7 +1338,7 @@ function TFslObject.Link: TFslObject;
1352
1338
InterlockedIncrement(FFslObjectReferenceCount)
1353
1339
else
1354
1340
inc(FFslObjectReferenceCount);
1355
- { $IFDEF TRACK_CLASSES }
1341
+ { $IFDEF OBJECT_TRACKING }
1356
1342
if self.classname = CLASS_NAME_OF_INTEREST then
1357
1343
freeNotification(false);
1358
1344
{ $ENDIF}
@@ -1525,7 +1511,7 @@ function TFslObject.debugInfo: String;
1525
1511
1526
1512
procedure TFslObject.updateDebugInfo ;
1527
1513
begin
1528
- { $IFOPT D+ }
1514
+ { $IFDEF OBJECT_TRACKING }
1529
1515
FDebugInfo := debugInfo;
1530
1516
{ $ENDIF}
1531
1517
end ;
@@ -1548,19 +1534,16 @@ function TFslObject.ObjectCrossesThreads: boolean;
1548
1534
function TFslObject.dumpSummary : String;
1549
1535
begin
1550
1536
result := inttostr(FFslObjectReferenceCount+1 );
1551
- { $IFDEF TRACK_CLASSES }
1537
+ { $IFDEF OBJECT_TRACKING }
1552
1538
if FNamedInstance <> ' ' then
1553
1539
result := result + FNamedInstance
1554
- { $ELSE}
1555
- if false then
1556
- { $ENDIF}
1557
- { $IFDEF OBJECT_TRACKING}
1558
1540
else if (updatedDebugInfo <> ' ?' ) then
1559
1541
result := result +' (^' +FDebugInfo+' )'
1560
1542
else if (FSerial > 0 ) then
1561
1543
result := result +' (#' +inttostr(FSerial)+' )'
1544
+ else
1562
1545
{ $ENDIF}
1563
- else if FMagic <> 0 then
1546
+ if FMagic <> 0 then
1564
1547
result := result +' ($' +inttostr(FMagic)+' )' ;
1565
1548
end ;
1566
1549
@@ -1570,7 +1553,7 @@ function TFslObject.updatedDebugInfo: String;
1570
1553
updateDebugInfo;
1571
1554
except
1572
1555
end ;
1573
- result := { $IFOPT D+ } FDebugInfo{ $ELSE} ' ' { $ENDIF} ;
1556
+ result := { $IFDEF OBJECT_TRACKING } FDebugInfo{ $ELSE} ' ' { $ENDIF} ;
1574
1557
end ;
1575
1558
1576
1559
function TFslObject.CheckCondition (bCorrect: Boolean; const sMethod, sMessage: String): Boolean;
@@ -1652,15 +1635,13 @@ function TFslObject.sizeInBytes(magic : integer) : cardinal;
1652
1635
function TFslObject.sizeInBytesV (magic : integer) : cardinal;
1653
1636
begin
1654
1637
result := sizeof(self);
1655
- { $IFOPT D+}
1656
- inc(result, (length(FNamedClass))+2 );
1657
- { $ENDIF}
1658
1638
{ $IFDEF OBJECT_TRACKING}
1639
+ inc(result, (length(FNamedClass))+2 );
1659
1640
inc(result, length(FThreadName)+12 );
1660
1641
{ $ENDIF}
1661
1642
end ;
1662
1643
1663
- { $IFDEF TRACK_CLASSES }
1644
+ { $IFDEF OBJECT_TRACKING }
1664
1645
procedure noop (done : boolean);
1665
1646
begin
1666
1647
// nothing;
0 commit comments