* made variant operators inlined

* fixed some inline directives
+ variant<->olevariant cast operators

git-svn-id: trunk@632 -
This commit is contained in:
florian 2005-07-15 21:12:21 +00:00
parent 56d6fd6feb
commit 30769ea013
3 changed files with 147 additions and 138 deletions

View File

@ -1,8 +1,8 @@
{ {
This file contains the OS independent declarations of the system unit
This file is part of the Free Pascal Run time library. This file is part of the Free Pascal Run time library.
Copyright (c) 1999-2000 by the Free Pascal development team Copyright (c) 1999-2005 by the Free Pascal development team
This File contains the OS independent declarations of the system unit
See the File COPYING.FPC, included in this distribution, See the File COPYING.FPC, included in this distribution,
for details about the copyright. for details about the copyright.
@ -27,12 +27,8 @@
{$endif} {$endif}
{ Using inlining for small system functions/wrappers } { Using inlining for small system functions/wrappers }
{$ifdef HASINLINE} {$inline on}
{$inline on} {$define SYSTEMINLINE}
{$define SYSTEMINLINE}
{$endif}
{ Use threadvars when the compiler supports it }
{ don't use FPU registervariables on the i386 } { don't use FPU registervariables on the i386 }
{$ifdef CPUI386} {$ifdef CPUI386}
@ -594,7 +590,7 @@ function get_caller_frame(framebp:pointer):pointer;{$ifdef SYSTEMINLINE}inline;{
Function IOResult:Word;{$ifdef SYSTEMINLINE}inline;{$endif} Function IOResult:Word;{$ifdef SYSTEMINLINE}inline;{$endif}
Function Sptr:Pointer;{$ifdef SYSTEMINLINE}inline;{$endif}[internconst:fpc_in_const_ptr]; Function Sptr:Pointer;{$ifdef SYSTEMINLINE}inline;{$endif}[internconst:fpc_in_const_ptr];
Function GetProcessID:SizeUInt; Function GetProcessID:SizeUInt;
Function GetThreadID:TThreadID; Function GetThreadID:TThreadID;{$ifdef SYSTEMINLINE}inline;{$endif}
{***************************************************************************** {*****************************************************************************

View File

@ -149,72 +149,72 @@ function fpc_interface_to_variant(const i : iinterface) : variant;compilerproc;
{ Integer } { Integer }
operator :=(const source : byte) dest : variant; operator :=(const source : byte) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,1); Variantmanager.varfromInt(Dest,Source,1);
end; end;
operator :=(const source : shortint) dest : variant; operator :=(const source : shortint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,-1); Variantmanager.varfromInt(Dest,Source,-1);
end; end;
operator :=(const source : word) dest : variant; operator :=(const source : word) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,2); Variantmanager.varfromInt(Dest,Source,2);
end; end;
operator :=(const source : smallint) dest : variant; operator :=(const source : smallint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,-2); Variantmanager.varfromInt(Dest,Source,-2);
end; end;
operator :=(const source : dword) dest : variant; operator :=(const source : dword) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,4); Variantmanager.varfromInt(Dest,Source,4);
end; end;
operator :=(const source : longint) dest : variant; operator :=(const source : longint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt(Dest,Source,-4); Variantmanager.varfromInt(Dest,Source,-4);
end; end;
operator :=(const source : qword) dest : variant; operator :=(const source : qword) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromWord64(Dest,Source); Variantmanager.varfromWord64(Dest,Source);
end; end;
operator :=(const source : int64) dest : variant; operator :=(const source : int64) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromInt64(Dest,Source); Variantmanager.varfromInt64(Dest,Source);
end; end;
{ Boolean } { Boolean }
operator :=(const source : boolean) dest : variant; operator :=(const source : boolean) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromBool(Dest,Source); Variantmanager.varfromBool(Dest,Source);
end; end;
operator :=(const source : wordbool) dest : variant; operator :=(const source : wordbool) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromBool(Dest,Boolean(Source)); Variantmanager.varfromBool(Dest,Boolean(Source));
end; end;
operator :=(const source : longbool) dest : variant; operator :=(const source : longbool) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
Variantmanager.varfromBool(Dest,Boolean(Source)); Variantmanager.varfromBool(Dest,Boolean(Source));
@ -223,14 +223,14 @@ end;
{ Chars } { Chars }
operator :=(const source : char) dest : variant; operator :=(const source : char) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromPStr(Dest,Source); VariantManager.VarFromPStr(Dest,Source);
end; end;
operator :=(const source : widechar) dest : variant; operator :=(const source : widechar) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromWStr(Dest,Source); VariantManager.VarFromWStr(Dest,Source);
@ -238,21 +238,21 @@ end;
{ Strings } { Strings }
operator :=(const source : shortstring) dest : variant; operator :=(const source : shortstring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromPStr(Dest,Source); VariantManager.VarFromPStr(Dest,Source);
end; end;
operator :=(const source : ansistring) dest : variant; operator :=(const source : ansistring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromLStr(Dest,Source); VariantManager.VarFromLStr(Dest,Source);
end; end;
operator :=(const source : widestring) dest : variant; operator :=(const source : widestring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromWStr(Dest,Source); VariantManager.VarFromWStr(Dest,Source);
@ -261,7 +261,7 @@ end;
{ Floats } { Floats }
{$ifdef SUPPORT_SINGLE} {$ifdef SUPPORT_SINGLE}
operator :=(const source : single) dest : variant; operator :=(const source : single) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromReal(Dest,Source); VariantManager.VarFromReal(Dest,Source);
end; end;
@ -269,7 +269,7 @@ end;
{$ifdef SUPPORT_DOUBLE} {$ifdef SUPPORT_DOUBLE}
operator :=(const source : double) dest : variant; operator :=(const source : double) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromReal(Dest,Source); VariantManager.VarFromReal(Dest,Source);
end; end;
@ -277,7 +277,7 @@ end;
{$ifdef SUPPORT_EXTENDED} {$ifdef SUPPORT_EXTENDED}
operator :=(const source : extended) dest : variant; operator :=(const source : extended) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromReal(Dest,Source); VariantManager.VarFromReal(Dest,Source);
end; end;
@ -285,7 +285,7 @@ end;
{$ifdef SUPPORT_COMP} {$ifdef SUPPORT_COMP}
Operator :=(const source : comp) dest : variant; Operator :=(const source : comp) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromReal(Dest,Source); VariantManager.VarFromReal(Dest,Source);
end; end;
@ -293,13 +293,13 @@ end;
{ Misc. } { Misc. }
operator :=(const source : currency) dest : variant; operator :=(const source : currency) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromCurr(Dest,Source); VariantManager.VarFromCurr(Dest,Source);
end; end;
operator :=(const source : tdatetime) dest : variant; operator :=(const source : tdatetime) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarFromTDateTime(Dest,Source); VariantManager.VarFromTDateTime(Dest,Source);
end; end;
@ -310,56 +310,56 @@ operator :=(const source : tdatetime) dest : variant;
{ Integer } { Integer }
operator :=(const source : variant) dest : byte; operator :=(const source : variant) dest : byte;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : shortint; operator :=(const source : variant) dest : shortint;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : word; operator :=(const source : variant) dest : word;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : smallint; operator :=(const source : variant) dest : smallint;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : dword; operator :=(const source : variant) dest : dword;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : longint; operator :=(const source : variant) dest : longint;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint(source); dest:=variantmanager.vartoint(source);
end; end;
operator :=(const source : variant) dest : qword; operator :=(const source : variant) dest : qword;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoword64(source); dest:=variantmanager.vartoword64(source);
end; end;
operator :=(const source : variant) dest : int64; operator :=(const source : variant) dest : int64;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoint64(source); dest:=variantmanager.vartoint64(source);
@ -368,21 +368,21 @@ end;
{ Boolean } { Boolean }
operator :=(const source : variant) dest : boolean; operator :=(const source : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartobool(source); dest:=variantmanager.vartobool(source);
end; end;
operator :=(const source : variant) dest : wordbool; operator :=(const source : variant) dest : wordbool;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartobool(source); dest:=variantmanager.vartobool(source);
end; end;
operator :=(const source : variant) dest : longbool; operator :=(const source : variant) dest : longbool;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartobool(source); dest:=variantmanager.vartobool(source);
@ -391,7 +391,7 @@ end;
{ Chars } { Chars }
operator :=(const source : variant) dest : char; operator :=(const source : variant) dest : char;{$ifdef SYSTEMINLINE}inline;{$endif}
Var Var
S : String; S : String;
@ -403,7 +403,7 @@ begin
end; end;
operator :=(const source : variant) dest : widechar; operator :=(const source : variant) dest : widechar;{$ifdef SYSTEMINLINE}inline;{$endif}
Var Var
WS : WideString; WS : WideString;
@ -417,19 +417,19 @@ end;
{ Strings } { Strings }
operator :=(const source : variant) dest : shortstring; operator :=(const source : variant) dest : shortstring;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.VarToPStr(Dest,Source); VariantManager.VarToPStr(Dest,Source);
end; end;
operator :=(const source : variant) dest : ansistring; operator :=(const source : variant) dest : ansistring;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
VariantManager.vartolstr(dest,source); VariantManager.vartolstr(dest,source);
end; end;
operator :=(const source : variant) dest : widestring; operator :=(const source : variant) dest : widestring;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
variantmanager.vartowstr(dest,source); variantmanager.vartowstr(dest,source);
@ -438,7 +438,7 @@ end;
{ Floats } { Floats }
{$ifdef SUPPORT_SINGLE} {$ifdef SUPPORT_SINGLE}
operator :=(const source : variant) dest : single; operator :=(const source : variant) dest : single;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoreal(source); dest:=variantmanager.vartoreal(source);
end; end;
@ -446,7 +446,7 @@ end;
{$ifdef SUPPORT_DOUBLE} {$ifdef SUPPORT_DOUBLE}
operator :=(const source : variant) dest : double; operator :=(const source : variant) dest : double;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoreal(source); dest:=variantmanager.vartoreal(source);
end; end;
@ -454,7 +454,7 @@ end;
{$ifdef SUPPORT_EXTENDED} {$ifdef SUPPORT_EXTENDED}
operator :=(const source : variant) dest : extended; operator :=(const source : variant) dest : extended;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartoreal(source); dest:=variantmanager.vartoreal(source);
end; end;
@ -462,7 +462,7 @@ end;
{$ifdef SUPPORT_COMP} {$ifdef SUPPORT_COMP}
operator :=(const source : variant) dest : comp; operator :=(const source : variant) dest : comp;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=comp(variantmanager.vartoreal(source)); dest:=comp(variantmanager.vartoreal(source));
end; end;
@ -470,126 +470,138 @@ end;
{ Misc. } { Misc. }
operator :=(const source : variant) dest : currency; operator :=(const source : variant) dest : currency;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartocurr(source); dest:=variantmanager.vartocurr(source);
end; end;
operator :=(const source : variant) dest : tdatetime; operator :=(const source : variant) dest : tdatetime;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.vartotdatetime(source); dest:=variantmanager.vartotdatetime(source);
end; end;
operator :=(const source : olevariant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin
tvardata(result):=tvardata(source);
end;
operator :=(const source : variant) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin
variantmanager.olevarfromvar(dest,source);
end;
{********************************************************************** {**********************************************************************
Operators Operators
**********************************************************************} **********************************************************************}
operator or(const op1,op2 : variant) dest : variant; operator or(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opor); variantmanager.varop(dest,op2,opor);
end; end;
operator and(const op1,op2 : variant) dest : variant; operator and(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opand); variantmanager.varop(dest,op2,opand);
end; end;
operator xor(const op1,op2 : variant) dest : variant; operator xor(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opxor); variantmanager.varop(dest,op2,opxor);
end; end;
operator not(const op : variant) dest : variant; operator not(const op : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op; dest:=op;
variantmanager.varnot(dest); variantmanager.varnot(dest);
end; end;
operator shl(const op1,op2 : variant) dest : variant; operator shl(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opshiftleft); variantmanager.varop(dest,op2,opshiftleft);
end; end;
operator shr(const op1,op2 : variant) dest : variant; operator shr(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opshiftright); variantmanager.varop(dest,op2,opshiftright);
end; end;
operator +(const op1,op2 : variant) dest : variant; operator +(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opadd); variantmanager.varop(dest,op2,opadd);
end; end;
operator -(const op1,op2 : variant) dest : variant; operator -(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opsubtract); variantmanager.varop(dest,op2,opsubtract);
end; end;
operator *(const op1,op2 : variant) dest : variant; operator *(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opmultiply); variantmanager.varop(dest,op2,opmultiply);
end; end;
operator /(const op1,op2 : variant) dest : variant; operator /(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opdivide); variantmanager.varop(dest,op2,opdivide);
end; end;
operator **(const op1,op2 : variant) dest : variant; operator **(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,oppower); variantmanager.varop(dest,op2,oppower);
end; end;
operator div(const op1,op2 : variant) dest : variant; operator div(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opintdivide); variantmanager.varop(dest,op2,opintdivide);
end; end;
operator mod(const op1,op2 : variant) dest : variant; operator mod(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op1; dest:=op1;
variantmanager.varop(dest,op2,opmodulus); variantmanager.varop(dest,op2,opmodulus);
end; end;
operator -(const op : variant) dest : variant; operator -(const op : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=op; dest:=op;
variantmanager.varneg(dest); variantmanager.varneg(dest);
end; end;
operator =(const op1,op2 : variant) dest : boolean; operator =(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.cmpop(op1,op2,opcmpeq); dest:=variantmanager.cmpop(op1,op2,opcmpeq);
end; end;
operator <(const op1,op2 : variant) dest : boolean; operator <(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.cmpop(op1,op2,opcmplt); dest:=variantmanager.cmpop(op1,op2,opcmplt);
end; end;
operator >(const op1,op2 : variant) dest : boolean; operator >(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.cmpop(op1,op2,opcmpgt); dest:=variantmanager.cmpop(op1,op2,opcmpgt);
end; end;
operator >=(const op1,op2 : variant) dest : boolean; operator >=(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.cmpop(op1,op2,opcmpge); dest:=variantmanager.cmpop(op1,op2,opcmpge);
end; end;
operator <=(const op1,op2 : variant) dest : boolean; operator <=(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
begin begin
dest:=variantmanager.cmpop(op1,op2,opcmplt); dest:=variantmanager.cmpop(op1,op2,opcmplt);
end; end;
@ -646,5 +658,3 @@ procedure initvariantmanager;
ppointer(@variantmanager+i*sizeof(pointer))^:=@invalidvariantopnovariants; ppointer(@variantmanager+i*sizeof(pointer))^:=@invalidvariantopnovariants;
pointer(variantmanager.varclear):=@varclear pointer(variantmanager.varclear):=@varclear
end; end;

View File

@ -207,116 +207,119 @@ var
**********************************************************************} **********************************************************************}
{ Integer } { Integer }
operator :=(const source : byte) dest : variant; operator :=(const source : byte) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : shortint) dest : variant; operator :=(const source : shortint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : word) dest : variant; operator :=(const source : word) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : smallint) dest : variant; operator :=(const source : smallint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : dword) dest : variant; operator :=(const source : dword) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : longint) dest : variant; operator :=(const source : longint) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : qword) dest : variant; operator :=(const source : qword) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : int64) dest : variant; operator :=(const source : int64) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Boolean } { Boolean }
operator :=(const source : boolean) dest : variant; operator :=(const source : boolean) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : wordbool) dest : variant; operator :=(const source : wordbool) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : longbool) dest : variant; operator :=(const source : longbool) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Chars } { Chars }
operator :=(const source : char) dest : variant; operator :=(const source : char) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : widechar) dest : variant; operator :=(const source : widechar) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Strings } { Strings }
operator :=(const source : shortstring) dest : variant; operator :=(const source : shortstring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : ansistring) dest : variant; operator :=(const source : ansistring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : widestring) dest : variant; operator :=(const source : widestring) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Floats } { Floats }
{$ifdef SUPPORT_SINGLE} {$ifdef SUPPORT_SINGLE}
operator :=(const source : single) dest : variant; operator :=(const source : single) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_SINGLE} {$endif SUPPORT_SINGLE}
{$ifdef SUPPORT_DOUBLE} {$ifdef SUPPORT_DOUBLE}
operator :=(const source : double) dest : variant; operator :=(const source : double) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_DOUBLE} {$endif SUPPORT_DOUBLE}
{$ifdef SUPPORT_EXTENDED} {$ifdef SUPPORT_EXTENDED}
operator :=(const source : extended) dest : variant; operator :=(const source : extended) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_EXTENDED} {$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_COMP} {$ifdef SUPPORT_COMP}
operator :=(const source : comp) dest : variant; operator :=(const source : comp) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_COMP} {$endif SUPPORT_COMP}
{ Misc. } { Misc. }
operator :=(const source : currency) dest : variant; operator :=(const source : currency) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : tdatetime) dest : variant; operator :=(const source : tdatetime) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
{********************************************************************** {**********************************************************************
from Variant assignments from Variant assignments
**********************************************************************} **********************************************************************}
{ Integer } { Integer }
operator :=(const source : variant) dest : byte; operator :=(const source : variant) dest : byte;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : shortint; operator :=(const source : variant) dest : shortint;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : word; operator :=(const source : variant) dest : word;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : smallint; operator :=(const source : variant) dest : smallint;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : dword; operator :=(const source : variant) dest : dword;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : longint; operator :=(const source : variant) dest : longint;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : qword; operator :=(const source : variant) dest : qword;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : int64; operator :=(const source : variant) dest : int64;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Boolean } { Boolean }
operator :=(const source : variant) dest : boolean; operator :=(const source : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : wordbool; operator :=(const source : variant) dest : wordbool;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : longbool; operator :=(const source : variant) dest : longbool;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Chars } { Chars }
operator :=(const source : variant) dest : char; operator :=(const source : variant) dest : char;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : widechar; operator :=(const source : variant) dest : widechar;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Strings } { Strings }
operator :=(const source : variant) dest : shortstring; operator :=(const source : variant) dest : shortstring;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : ansistring; operator :=(const source : variant) dest : ansistring;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : widestring; operator :=(const source : variant) dest : widestring;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Floats } { Floats }
{$ifdef SUPPORT_SINGLE} {$ifdef SUPPORT_SINGLE}
operator :=(const source : variant) dest : single; operator :=(const source : variant) dest : single;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_SINGLE} {$endif SUPPORT_SINGLE}
{$ifdef SUPPORT_DOUBLE} {$ifdef SUPPORT_DOUBLE}
operator :=(const source : variant) dest : double; operator :=(const source : variant) dest : double;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_DOUBLE} {$endif SUPPORT_DOUBLE}
{$ifdef SUPPORT_EXTENDED} {$ifdef SUPPORT_EXTENDED}
operator :=(const source : variant) dest : extended; operator :=(const source : variant) dest : extended;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_EXTENDED} {$endif SUPPORT_EXTENDED}
{$ifdef SUPPORT_EXTENDED} {$ifdef SUPPORT_EXTENDED}
operator :=(const source : variant) dest : comp; operator :=(const source : variant) dest : comp;{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif SUPPORT_COMP} {$endif SUPPORT_COMP}
operator :=(const source : olevariant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
{ Misc. } { Misc. }
operator :=(const source : variant) dest : currency; operator :=(const source : variant) dest : currency;{$ifdef SYSTEMINLINE}inline;{$endif}
operator :=(const source : variant) dest : tdatetime; operator :=(const source : variant) dest : tdatetime;{$ifdef SYSTEMINLINE}inline;{$endif}
{********************************************************************** {**********************************************************************
Operators Operators
**********************************************************************} **********************************************************************}
operator or(const op1,op2 : variant) dest : variant; operator or(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator and(const op1,op2 : variant) dest : variant; operator and(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator xor(const op1,op2 : variant) dest : variant; operator xor(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator not(const op : variant) dest : variant; operator not(const op : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator shl(const op1,op2 : variant) dest : variant; operator shl(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator shr(const op1,op2 : variant) dest : variant; operator shr(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator +(const op1,op2 : variant) dest : variant; operator +(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator -(const op1,op2 : variant) dest : variant; operator -(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator *(const op1,op2 : variant) dest : variant; operator *(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator /(const op1,op2 : variant) dest : variant; operator /(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator **(const op1,op2 : variant) dest : variant; operator **(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator div(const op1,op2 : variant) dest : variant; operator div(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator mod(const op1,op2 : variant) dest : variant; operator mod(const op1,op2 : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator -(const op : variant) dest : variant; operator -(const op : variant) dest : variant;{$ifdef SYSTEMINLINE}inline;{$endif}
operator =(const op1,op2 : variant) dest : boolean; operator =(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator <(const op1,op2 : variant) dest : boolean; operator <(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator >(const op1,op2 : variant) dest : boolean; operator >(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator >=(const op1,op2 : variant) dest : boolean; operator >=(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
operator <=(const op1,op2 : variant) dest : boolean; operator <=(const op1,op2 : variant) dest : boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
{ variant helpers } { variant helpers }
procedure VarArrayRedim(var A: Variant; HighBound: SizeInt); procedure VarArrayRedim(var A: Variant; HighBound: SizeInt);