mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 14:50:17 +02:00
+ beginning of variant dispatching
This commit is contained in:
parent
1d4499f32e
commit
f9ed2775c2
@ -114,7 +114,7 @@ operator :=(const source : comp) dest : variant;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{ Misc. }
|
{ Misc. }
|
||||||
{ Fixme!!!
|
{ Fixme!!!
|
||||||
operator :=(const source : currency) dest : variant;
|
operator :=(const source : currency) dest : variant;
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
@ -129,7 +129,7 @@ operator :=(const source : tdatetime) dest : variant;
|
|||||||
|
|
||||||
{ Integer }
|
{ Integer }
|
||||||
operator :=(const source : variant) dest : byte;
|
operator :=(const source : variant) dest : byte;
|
||||||
begin
|
begin
|
||||||
dest:=variantmanager.vartoint(source);
|
dest:=variantmanager.vartoint(source);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ operator :=(const source : variant) dest : tdatetime;
|
|||||||
|
|
||||||
procedure invalidvariantop;
|
procedure invalidvariantop;
|
||||||
begin
|
begin
|
||||||
Runerror(221);
|
HandleErrorFrame(221,get_frame);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure varclear(var v : tvardata);
|
procedure varclear(var v : tvardata);
|
||||||
@ -261,10 +261,18 @@ begin
|
|||||||
invalidvariantop;
|
invalidvariantop;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure vardisperror;
|
||||||
|
|
||||||
|
begin
|
||||||
|
HandleErrorFrame(222,get_frame);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure initvariantmanager;
|
procedure initvariantmanager;
|
||||||
var
|
var
|
||||||
i : longint;
|
i : longint;
|
||||||
begin
|
begin
|
||||||
|
VarDispProc:=@vardisperror;
|
||||||
|
DispCallByIDProc:=@vardisperror;
|
||||||
for i:=0 to (sizeof(tvariantmanager) div sizeof(pointer))-1 do
|
for i:=0 to (sizeof(tvariantmanager) div sizeof(pointer))-1 do
|
||||||
ppointer(@variantmanager+i*sizeof(pointer))^:=@invalidvariantop;
|
ppointer(@variantmanager+i*sizeof(pointer))^:=@invalidvariantop;
|
||||||
pointer(variantmanager.varclear):=@varclear
|
pointer(variantmanager.varclear):=@varclear
|
||||||
@ -272,8 +280,10 @@ procedure initvariantmanager;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2001-08-19 21:02:01 florian
|
Revision 1.2 2001-11-08 16:17:30 florian
|
||||||
* fixed and added a lot of stuff to get the Jedi DX( headers
|
+ beginning of variant dispatching
|
||||||
compiled
|
|
||||||
|
|
||||||
|
Revision 1.1 2001/08/19 21:02:01 florian
|
||||||
|
* fixed and added a lot of stuff to get the Jedi DX8 headers
|
||||||
|
compiled
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,9 @@ type
|
|||||||
pvariantmanager = ^tvariantmanager;
|
pvariantmanager = ^tvariantmanager;
|
||||||
|
|
||||||
var
|
var
|
||||||
variantmanager : tvariantmanager;
|
VarDispProc : pointer;
|
||||||
|
DispCallByIDProc : pointer;
|
||||||
|
variantmanager : tvariantmanager;
|
||||||
|
|
||||||
{**********************************************************************
|
{**********************************************************************
|
||||||
to Variant assignments
|
to Variant assignments
|
||||||
@ -244,8 +246,10 @@ operator :=(const source : variant) dest : tdatetime;
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2001-08-19 21:02:02 florian
|
Revision 1.2 2001-11-08 16:17:30 florian
|
||||||
* fixed and added a lot of stuff to get the Jedi DX( headers
|
+ beginning of variant dispatching
|
||||||
compiled
|
|
||||||
|
|
||||||
|
Revision 1.1 2001/08/19 21:02:02 florian
|
||||||
|
* fixed and added a lot of stuff to get the Jedi DX8 headers
|
||||||
|
compiled
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ const
|
|||||||
|
|
||||||
FileNameCaseSensitive : boolean = true;
|
FileNameCaseSensitive : boolean = true;
|
||||||
|
|
||||||
sLineBreak : string[2] = LineEnding;
|
sLineBreak : string = LineEnding;
|
||||||
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
|
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
|
||||||
|
|
||||||
{ Thread count for DLL }
|
{ Thread count for DLL }
|
||||||
@ -1503,25 +1503,23 @@ begin
|
|||||||
Rewrite(T);
|
Rewrite(T);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const
|
const
|
||||||
Exe_entry_code : pointer = @Exe_entry;
|
Exe_entry_code : pointer = @Exe_entry;
|
||||||
Dll_entry_code : pointer = @Dll_entry;
|
Dll_entry_code : pointer = @Dll_entry;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
{ get some helpful informations }
|
{ get some helpful informations }
|
||||||
GetStartupInfo(@startupinfo);
|
GetStartupInfo(@startupinfo);
|
||||||
{ some misc Win32 stuff }
|
{ some misc Win32 stuff }
|
||||||
hprevinst:=0;
|
hprevinst:=0;
|
||||||
if not IsLibrary then
|
if not IsLibrary then
|
||||||
HInstance:=getmodulehandle(GetCommandFile);
|
HInstance:=getmodulehandle(GetCommandFile);
|
||||||
MainInstance:=HInstance;
|
MainInstance:=HInstance;
|
||||||
cmdshow:=startupinfo.wshowwindow;
|
cmdshow:=startupinfo.wshowwindow;
|
||||||
{ to test stack depth }
|
{ to test stack depth }
|
||||||
loweststack:=maxlongint;
|
loweststack:=maxlongint;
|
||||||
{ real test stack depth }
|
{ real test stack depth }
|
||||||
{ stacklimit := setupstack; }
|
{ stacklimit := setupstack; }
|
||||||
{$ifdef MT}
|
{$ifdef MT}
|
||||||
{ allocate one threadvar entry from windows, we use this entry }
|
{ allocate one threadvar entry from windows, we use this entry }
|
||||||
{ for a pointer to our threadvars }
|
{ for a pointer to our threadvars }
|
||||||
@ -1529,11 +1527,11 @@ begin
|
|||||||
{ the exceptions use threadvars so do this _before_ initexceptions }
|
{ the exceptions use threadvars so do this _before_ initexceptions }
|
||||||
AllocateThreadVars;
|
AllocateThreadVars;
|
||||||
{$endif MT}
|
{$endif MT}
|
||||||
{ Setup heap }
|
{ Setup heap }
|
||||||
InitHeap;
|
InitHeap;
|
||||||
InitExceptions;
|
InitExceptions;
|
||||||
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
|
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
|
||||||
displayed in and messagebox }
|
displayed in and messagebox }
|
||||||
StdInputHandle:=longint(GetStdHandle(STD_INPUT_HANDLE));
|
StdInputHandle:=longint(GetStdHandle(STD_INPUT_HANDLE));
|
||||||
StdOutputHandle:=longint(GetStdHandle(STD_OUTPUT_HANDLE));
|
StdOutputHandle:=longint(GetStdHandle(STD_OUTPUT_HANDLE));
|
||||||
StdErrorHandle:=longint(GetStdHandle(STD_ERROR_HANDLE));
|
StdErrorHandle:=longint(GetStdHandle(STD_ERROR_HANDLE));
|
||||||
@ -1551,11 +1549,11 @@ begin
|
|||||||
OpenStdIO(StdOut,fmOutput,StdOutputHandle);
|
OpenStdIO(StdOut,fmOutput,StdOutputHandle);
|
||||||
OpenStdIO(StdErr,fmOutput,StdErrorHandle);
|
OpenStdIO(StdErr,fmOutput,StdErrorHandle);
|
||||||
end;
|
end;
|
||||||
{ Arguments }
|
{ Arguments }
|
||||||
setup_arguments;
|
setup_arguments;
|
||||||
{ Reset IO Error }
|
{ Reset IO Error }
|
||||||
InOutRes:=0;
|
InOutRes:=0;
|
||||||
{ Reset internal error variable }
|
{ Reset internal error variable }
|
||||||
errno:=0;
|
errno:=0;
|
||||||
{$ifdef HASVARIANT}
|
{$ifdef HASVARIANT}
|
||||||
initvariantmanager;
|
initvariantmanager;
|
||||||
@ -1564,7 +1562,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.20 2001-11-07 13:05:16 michael
|
Revision 1.21 2001-11-08 16:16:54 florian
|
||||||
|
+ beginning of variant dispatching
|
||||||
|
|
||||||
|
Revision 1.20 2001/11/07 13:05:16 michael
|
||||||
+ Fixed Append() bug. Appending non-existing file now gives an error
|
+ Fixed Append() bug. Appending non-existing file now gives an error
|
||||||
|
|
||||||
Revision 1.19 2001/10/23 21:51:03 peter
|
Revision 1.19 2001/10/23 21:51:03 peter
|
||||||
@ -1574,7 +1575,7 @@ end.
|
|||||||
* bugfix #1639 (IsMultiThread varialbe setting)
|
* bugfix #1639 (IsMultiThread varialbe setting)
|
||||||
|
|
||||||
Revision 1.17 2001/08/19 21:02:02 florian
|
Revision 1.17 2001/08/19 21:02:02 florian
|
||||||
* fixed and added a lot of stuff to get the Jedi DX( headers
|
* fixed and added a lot of stuff to get the Jedi DX8 headers
|
||||||
compiled
|
compiled
|
||||||
|
|
||||||
Revision 1.16 2001/07/30 20:53:50 peter
|
Revision 1.16 2001/07/30 20:53:50 peter
|
||||||
@ -1643,4 +1644,4 @@ end.
|
|||||||
Revision 1.2 2000/07/13 11:33:58 michael
|
Revision 1.2 2000/07/13 11:33:58 michael
|
||||||
+ removed logs
|
+ removed logs
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user