mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:29:21 +02:00
* Cleanup of variant manager stub in System unit. FPC 2.1.1 adds Variants unit implicitly. Variant manager stub in System unit is never called. This cleanup shrinks wince executable size by 3KB.
git-svn-id: trunk@5307 -
This commit is contained in:
parent
c00d0debf0
commit
cc2b691c0c
@ -17,48 +17,10 @@
|
||||
var
|
||||
variantmanager : tvariantmanager;
|
||||
|
||||
procedure printmissingvariantunit;
|
||||
begin
|
||||
writeln(stderr);
|
||||
writeln(stderr,'Program needs probably the variants unit.');
|
||||
writeln(stderr,'Include the variants unit in your uses statements');
|
||||
writeln(stderr,'as one of the first units.');
|
||||
writeln(stderr);
|
||||
end;
|
||||
|
||||
|
||||
procedure invalidvariantop;
|
||||
begin
|
||||
printmissingvariantunit;
|
||||
HandleErrorFrame(221,get_frame);
|
||||
end;
|
||||
|
||||
|
||||
procedure invalidvariantopnovariants;
|
||||
begin
|
||||
printmissingvariantunit;
|
||||
HandleErrorFrame(221,get_frame);
|
||||
end;
|
||||
|
||||
|
||||
procedure vardisperror;
|
||||
begin
|
||||
printmissingvariantunit;
|
||||
HandleErrorFrame(222,get_frame);
|
||||
end;
|
||||
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
Compiler helper routines.
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
procedure varclear(var v : tvardata);
|
||||
begin
|
||||
if not(v.vtype in [varempty,varerror,varnull]) then
|
||||
invalidvariantop;
|
||||
end;
|
||||
|
||||
|
||||
procedure variant_init(var v : tvardata);[Public,Alias:'FPC_VARIANT_INIT'];
|
||||
begin
|
||||
{ calling the variant manager here is a problem because the static/global variants
|
||||
@ -1005,29 +967,6 @@ begin
|
||||
VariantManager:=VarMgr;
|
||||
end;
|
||||
|
||||
function IsVariantManagerSet: Boolean;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
I:=0;
|
||||
Result:=True;
|
||||
While Result and (I<(sizeof(tvariantmanager) div sizeof(pointer))-1) do
|
||||
begin
|
||||
Result:=(PPointer(@variantmanager)+i)^<>Pointer(@invalidvariantop);
|
||||
Inc(I);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure initvariantmanager;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
VarDispProc:=@vardisperror;
|
||||
DispCallByIDProc:=@vardisperror;
|
||||
tvardata(Unassigned).VType:=varEmpty;
|
||||
tvardata(Null).VType:=varNull;
|
||||
for i:=0 to (sizeof(tvariantmanager) div sizeof(pointer))-1 do
|
||||
(ppointer(@variantmanager)+i)^:=@invalidvariantopnovariants;
|
||||
pointer(variantmanager.varclear):=@varclear
|
||||
end;
|
||||
|
@ -194,7 +194,6 @@ type
|
||||
|
||||
procedure GetVariantManager(var VarMgr: TVariantManager);
|
||||
procedure SetVariantManager(const VarMgr: TVariantManager);
|
||||
function IsVariantManagerSet: Boolean;
|
||||
|
||||
const
|
||||
VarClearProc : procedure(var v : TVarData) = nil;
|
||||
@ -203,11 +202,6 @@ const
|
||||
VarToLStrProc : procedure(var d : AnsiString;const s : TVarData) = nil;
|
||||
VarToWStrProc : procedure(var d : WideString;const s : TVarData) = nil;
|
||||
|
||||
var
|
||||
VarDispProc : pointer;
|
||||
DispCallByIDProc : pointer;
|
||||
Null,Unassigned : Variant;
|
||||
|
||||
{**********************************************************************
|
||||
to Variant assignments
|
||||
**********************************************************************}
|
||||
|
Loading…
Reference in New Issue
Block a user