Skip to content

Commit 8e6a62b

Browse files
committed
Invert API method to make backport easy
1 parent 6e5639a commit 8e6a62b

4 files changed

Lines changed: 36 additions & 36 deletions

File tree

doc/Using_OO_API.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1744,10 +1744,10 @@ completed at the moment when given timer should alarm.
17441744
- void decodeTimeStampTzEx(Status status, const ISC_TIMESTAMP_TZ_EX* timeStampTz, uint* year, uint* month, uint* day,
17451745
uint* hours, uint* minutes, uint* seconds, uint* fractions, uint timeZoneBufferLength, string timeZoneBuffer) – decode
17461746
timestamp taking extended time zone into an account.
1747-
- Attachment executeCreateDatabase2(Status status, uint stmtLength, const string creatDBstatement, uint dialect,
1748-
uint dpbLength, const uchar* dpb, boolean* stmtIsCreateDb);
17491747
- void convert(Status status, uint sourceType, uint sourceScale, uint sourceLength, const void* source,
17501748
uint targetType, uint targetScale, uint targetLength, void* target);
1749+
- Attachment executeCreateDatabase2(Status status, uint stmtLength, const string creatDBstatement, uint dialect,
1750+
uint dpbLength, const uchar* dpb, boolean* stmtIsCreateDb);
17511751

17521752
<a name="XpbBuilder"></a> XpbBuilder methods:
17531753

src/include/firebird/FirebirdInterface.idl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,15 +1258,15 @@ version: // 4.0 Beta1 => 4.0 Beta2
12581258
void decodeTimeStampTzEx(Status status, const ISC_TIMESTAMP_TZ_EX* timeStampTz, uint* year, uint* month, uint* day,
12591259
uint* hours, uint* minutes, uint* seconds, uint* fractions, uint timeZoneBufferLength, string timeZoneBuffer);
12601260

1261+
version: // 4.0.6 => 4.0.7
1262+
void convert(Status status, uint sourceType, uint sourceScale, uint sourceLength, const void* source,
1263+
uint targetType, uint targetScale, uint targetLength, void* target);
1264+
12611265
version: // 5.0 => 6.0 Alpha1
12621266
Attachment executeCreateDatabase2(Status status,
12631267
uint stmtLength, const string creatDBstatement, uint dialect,
12641268
uint dpbLength, const uchar* dpb,
12651269
boolean* stmtIsCreateDb);
1266-
1267-
version: // 5.0 => 6.0 Alpha1
1268-
void convert(Status status, uint sourceType, uint sourceScale, uint sourceLength, const void* source,
1269-
uint targetType, uint targetScale, uint targetLength, void* target);
12701270
}
12711271

12721272
interface OffsetsCallback : Versioned

src/include/firebird/IdlFbInterfaces.h

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4846,8 +4846,8 @@ namespace Firebird
48464846
IInt128* (CLOOP_CARG *getInt128)(IUtil* self, IStatus* status) CLOOP_NOEXCEPT;
48474847
void (CLOOP_CARG *decodeTimeTzEx)(IUtil* self, IStatus* status, const ISC_TIME_TZ_EX* timeTz, unsigned* hours, unsigned* minutes, unsigned* seconds, unsigned* fractions, unsigned timeZoneBufferLength, char* timeZoneBuffer) CLOOP_NOEXCEPT;
48484848
void (CLOOP_CARG *decodeTimeStampTzEx)(IUtil* self, IStatus* status, const ISC_TIMESTAMP_TZ_EX* timeStampTz, unsigned* year, unsigned* month, unsigned* day, unsigned* hours, unsigned* minutes, unsigned* seconds, unsigned* fractions, unsigned timeZoneBufferLength, char* timeZoneBuffer) CLOOP_NOEXCEPT;
4849-
IAttachment* (CLOOP_CARG *executeCreateDatabase2)(IUtil* self, IStatus* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) CLOOP_NOEXCEPT;
48504849
void (CLOOP_CARG *convert)(IUtil* self, IStatus* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target) CLOOP_NOEXCEPT;
4850+
IAttachment* (CLOOP_CARG *executeCreateDatabase2)(IUtil* self, IStatus* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) CLOOP_NOEXCEPT;
48514851
};
48524852

48534853
protected:
@@ -5069,31 +5069,31 @@ namespace Firebird
50695069
StatusType::checkException(status);
50705070
}
50715071

5072-
template <typename StatusType> IAttachment* executeCreateDatabase2(StatusType* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb)
5072+
template <typename StatusType> void convert(StatusType* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target)
50735073
{
50745074
if (cloopVTable->version < 5)
50755075
{
50765076
StatusType::setVersionError(status, "IUtil", cloopVTable->version, 5);
50775077
StatusType::checkException(status);
5078-
return 0;
5078+
return;
50795079
}
50805080
StatusType::clearException(status);
5081-
IAttachment* ret = static_cast<VTable*>(this->cloopVTable)->executeCreateDatabase2(this, status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
5081+
static_cast<VTable*>(this->cloopVTable)->convert(this, status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
50825082
StatusType::checkException(status);
5083-
return ret;
50845083
}
50855084

5086-
template <typename StatusType> void convert(StatusType* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target)
5085+
template <typename StatusType> IAttachment* executeCreateDatabase2(StatusType* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb)
50875086
{
50885087
if (cloopVTable->version < 6)
50895088
{
50905089
StatusType::setVersionError(status, "IUtil", cloopVTable->version, 6);
50915090
StatusType::checkException(status);
5092-
return;
5091+
return 0;
50935092
}
50945093
StatusType::clearException(status);
5095-
static_cast<VTable*>(this->cloopVTable)->convert(this, status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
5094+
IAttachment* ret = static_cast<VTable*>(this->cloopVTable)->executeCreateDatabase2(this, status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
50965095
StatusType::checkException(status);
5096+
return ret;
50975097
}
50985098
};
50995099

@@ -16636,8 +16636,8 @@ namespace Firebird
1663616636
this->getInt128 = &Name::cloopgetInt128Dispatcher;
1663716637
this->decodeTimeTzEx = &Name::cloopdecodeTimeTzExDispatcher;
1663816638
this->decodeTimeStampTzEx = &Name::cloopdecodeTimeStampTzExDispatcher;
16639-
this->executeCreateDatabase2 = &Name::cloopexecuteCreateDatabase2Dispatcher;
1664016639
this->convert = &Name::cloopconvertDispatcher;
16640+
this->executeCreateDatabase2 = &Name::cloopexecuteCreateDatabase2Dispatcher;
1664116641
}
1664216642
} vTable;
1664316643

@@ -16950,32 +16950,32 @@ namespace Firebird
1695016950
}
1695116951
}
1695216952

16953-
static IAttachment* CLOOP_CARG cloopexecuteCreateDatabase2Dispatcher(IUtil* self, IStatus* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) CLOOP_NOEXCEPT
16953+
static void CLOOP_CARG cloopconvertDispatcher(IUtil* self, IStatus* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target) CLOOP_NOEXCEPT
1695416954
{
1695516955
StatusType status2(status);
1695616956

1695716957
try
1695816958
{
16959-
return static_cast<Name*>(self)->Name::executeCreateDatabase2(&status2, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
16959+
static_cast<Name*>(self)->Name::convert(&status2, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
1696016960
}
1696116961
catch (...)
1696216962
{
1696316963
StatusType::catchException(&status2);
16964-
return static_cast<IAttachment*>(0);
1696516964
}
1696616965
}
1696716966

16968-
static void CLOOP_CARG cloopconvertDispatcher(IUtil* self, IStatus* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target) CLOOP_NOEXCEPT
16967+
static IAttachment* CLOOP_CARG cloopexecuteCreateDatabase2Dispatcher(IUtil* self, IStatus* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) CLOOP_NOEXCEPT
1696916968
{
1697016969
StatusType status2(status);
1697116970

1697216971
try
1697316972
{
16974-
static_cast<Name*>(self)->Name::convert(&status2, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
16973+
return static_cast<Name*>(self)->Name::executeCreateDatabase2(&status2, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
1697516974
}
1697616975
catch (...)
1697716976
{
1697816977
StatusType::catchException(&status2);
16978+
return static_cast<IAttachment*>(0);
1697916979
}
1698016980
}
1698116981
};
@@ -17015,8 +17015,8 @@ namespace Firebird
1701517015
virtual IInt128* getInt128(StatusType* status) = 0;
1701617016
virtual void decodeTimeTzEx(StatusType* status, const ISC_TIME_TZ_EX* timeTz, unsigned* hours, unsigned* minutes, unsigned* seconds, unsigned* fractions, unsigned timeZoneBufferLength, char* timeZoneBuffer) = 0;
1701717017
virtual void decodeTimeStampTzEx(StatusType* status, const ISC_TIMESTAMP_TZ_EX* timeStampTz, unsigned* year, unsigned* month, unsigned* day, unsigned* hours, unsigned* minutes, unsigned* seconds, unsigned* fractions, unsigned timeZoneBufferLength, char* timeZoneBuffer) = 0;
17018-
virtual IAttachment* executeCreateDatabase2(StatusType* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) = 0;
1701917018
virtual void convert(StatusType* status, unsigned sourceType, unsigned sourceScale, unsigned sourceLength, const void* source, unsigned targetType, unsigned targetScale, unsigned targetLength, void* target) = 0;
17019+
virtual IAttachment* executeCreateDatabase2(StatusType* status, unsigned stmtLength, const char* creatDBstatement, unsigned dialect, unsigned dpbLength, const unsigned char* dpb, FB_BOOLEAN* stmtIsCreateDb) = 0;
1702017020
};
1702117021

1702217022
template <typename Name, typename StatusType, typename Base>

src/include/gen/Firebird.pas

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,8 @@ ISC_TIMESTAMP_TZ_EX = record
572572
IUtil_getInt128Ptr = function(this: IUtil; status: IStatus): IInt128; cdecl;
573573
IUtil_decodeTimeTzExPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
574574
IUtil_decodeTimeStampTzExPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
575-
IUtil_executeCreateDatabase2Ptr = function(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
576575
IUtil_convertPtr = procedure(this: IUtil; status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer); cdecl;
576+
IUtil_executeCreateDatabase2Ptr = function(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
577577
IOffsetsCallback_setOffsetPtr = procedure(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
578578
IXpbBuilder_clearPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
579579
IXpbBuilder_removeCurrentPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
@@ -2827,8 +2827,8 @@ UtilVTable = class(VersionedVTable)
28272827
getInt128: IUtil_getInt128Ptr;
28282828
decodeTimeTzEx: IUtil_decodeTimeTzExPtr;
28292829
decodeTimeStampTzEx: IUtil_decodeTimeStampTzExPtr;
2830-
executeCreateDatabase2: IUtil_executeCreateDatabase2Ptr;
28312830
convert: IUtil_convertPtr;
2831+
executeCreateDatabase2: IUtil_executeCreateDatabase2Ptr;
28322832
end;
28332833

28342834
IUtil = class(IVersioned)
@@ -2856,8 +2856,8 @@ IUtil = class(IVersioned)
28562856
function getInt128(status: IStatus): IInt128;
28572857
procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
28582858
procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2859-
function executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment;
28602859
procedure convert(status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer);
2860+
function executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment;
28612861
end;
28622862

28632863
IUtilImpl = class(IUtil)
@@ -2885,8 +2885,8 @@ IUtilImpl = class(IUtil)
28852885
function getInt128(status: IStatus): IInt128; virtual; abstract;
28862886
procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
28872887
procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2888-
function executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; virtual; abstract;
28892888
procedure convert(status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer); virtual; abstract;
2889+
function executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; virtual; abstract;
28902890
end;
28912891

28922892
OffsetsCallbackVTable = class(VersionedVTable)
@@ -8960,25 +8960,25 @@ procedure IUtil.decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_
89608960
FbException.checkException(status);
89618961
end;
89628962

8963-
function IUtil.executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment;
8963+
procedure IUtil.convert(status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer);
89648964
begin
89658965
if (vTable.version < 5) then begin
89668966
FbException.setVersionError(status, 'IUtil', vTable.version, 5);
8967-
Result := nil;
89688967
end
89698968
else begin
8970-
Result := UtilVTable(vTable).executeCreateDatabase2(Self, status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
8969+
UtilVTable(vTable).convert(Self, status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
89718970
end;
89728971
FbException.checkException(status);
89738972
end;
89748973

8975-
procedure IUtil.convert(status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer);
8974+
function IUtil.executeCreateDatabase2(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment;
89768975
begin
89778976
if (vTable.version < 6) then begin
89788977
FbException.setVersionError(status, 'IUtil', vTable.version, 6);
8978+
Result := nil;
89798979
end
89808980
else begin
8981-
UtilVTable(vTable).convert(Self, status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
8981+
Result := UtilVTable(vTable).executeCreateDatabase2(Self, status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
89828982
end;
89838983
FbException.checkException(status);
89848984
end;
@@ -15099,20 +15099,20 @@ procedure IUtilImpl_decodeTimeStampTzExDispatcher(this: IUtil; status: IStatus;
1509915099
end
1510015100
end;
1510115101

15102-
function IUtilImpl_executeCreateDatabase2Dispatcher(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
15102+
procedure IUtilImpl_convertDispatcher(this: IUtil; status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer); cdecl;
1510315103
begin
15104-
Result := nil;
1510515104
try
15106-
Result := IUtilImpl(this).executeCreateDatabase2(status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
15105+
IUtilImpl(this).convert(status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
1510715106
except
1510815107
on e: Exception do FbException.catchException(status, e);
1510915108
end
1511015109
end;
1511115110

15112-
procedure IUtilImpl_convertDispatcher(this: IUtil; status: IStatus; sourceType: Cardinal; sourceScale: Cardinal; sourceLength: Cardinal; source: Pointer; targetType: Cardinal; targetScale: Cardinal; targetLength: Cardinal; target: Pointer); cdecl;
15111+
function IUtilImpl_executeCreateDatabase2Dispatcher(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; dpbLength: Cardinal; dpb: BytePtr; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
1511315112
begin
15113+
Result := nil;
1511415114
try
15115-
IUtilImpl(this).convert(status, sourceType, sourceScale, sourceLength, source, targetType, targetScale, targetLength, target);
15115+
Result := IUtilImpl(this).executeCreateDatabase2(status, stmtLength, creatDBstatement, dialect, dpbLength, dpb, stmtIsCreateDb);
1511615116
except
1511715117
on e: Exception do FbException.catchException(status, e);
1511815118
end
@@ -18635,8 +18635,8 @@ initialization
1863518635
IUtilImpl_vTable.getInt128 := @IUtilImpl_getInt128Dispatcher;
1863618636
IUtilImpl_vTable.decodeTimeTzEx := @IUtilImpl_decodeTimeTzExDispatcher;
1863718637
IUtilImpl_vTable.decodeTimeStampTzEx := @IUtilImpl_decodeTimeStampTzExDispatcher;
18638-
IUtilImpl_vTable.executeCreateDatabase2 := @IUtilImpl_executeCreateDatabase2Dispatcher;
1863918638
IUtilImpl_vTable.convert := @IUtilImpl_convertDispatcher;
18639+
IUtilImpl_vTable.executeCreateDatabase2 := @IUtilImpl_executeCreateDatabase2Dispatcher;
1864018640

1864118641
IOffsetsCallbackImpl_vTable := OffsetsCallbackVTable.create;
1864218642
IOffsetsCallbackImpl_vTable.version := 2;

0 commit comments

Comments
 (0)