mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 12:46:06 +02:00
* made variant operators inlined
* fixed some inline directives + variant<->olevariant cast operators git-svn-id: trunk@632 -
This commit is contained in:
parent
56d6fd6feb
commit
30769ea013
@ -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}
|
||||||
|
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user