+ beginning of variant dispatching

This commit is contained in:
florian 2001-11-08 16:16:54 +00:00
parent 1d4499f32e
commit f9ed2775c2
3 changed files with 43 additions and 28 deletions

View File

@ -114,7 +114,7 @@ operator :=(const source : comp) dest : variant;
end;
{ Misc. }
{ Fixme!!!
{ Fixme!!!
operator :=(const source : currency) dest : variant;
begin
end;
@ -129,7 +129,7 @@ operator :=(const source : tdatetime) dest : variant;
{ Integer }
operator :=(const source : variant) dest : byte;
begin
begin
dest:=variantmanager.vartoint(source);
end;
@ -252,7 +252,7 @@ operator :=(const source : variant) dest : tdatetime;
procedure invalidvariantop;
begin
Runerror(221);
HandleErrorFrame(221,get_frame);
end;
procedure varclear(var v : tvardata);
@ -261,10 +261,18 @@ begin
invalidvariantop;
end;
procedure vardisperror;
begin
HandleErrorFrame(222,get_frame);
end;
procedure initvariantmanager;
var
i : longint;
i : longint;
begin
VarDispProc:=@vardisperror;
DispCallByIDProc:=@vardisperror;
for i:=0 to (sizeof(tvariantmanager) div sizeof(pointer))-1 do
ppointer(@variantmanager+i*sizeof(pointer))^:=@invalidvariantop;
pointer(variantmanager.varclear):=@varclear
@ -272,8 +280,10 @@ procedure initvariantmanager;
{
$Log$
Revision 1.1 2001-08-19 21:02:01 florian
* fixed and added a lot of stuff to get the Jedi DX( headers
compiled
Revision 1.2 2001-11-08 16:17:30 florian
+ beginning of variant dispatching
Revision 1.1 2001/08/19 21:02:01 florian
* fixed and added a lot of stuff to get the Jedi DX8 headers
compiled
}

View File

@ -162,7 +162,9 @@ type
pvariantmanager = ^tvariantmanager;
var
variantmanager : tvariantmanager;
VarDispProc : pointer;
DispCallByIDProc : pointer;
variantmanager : tvariantmanager;
{**********************************************************************
to Variant assignments
@ -244,8 +246,10 @@ operator :=(const source : variant) dest : tdatetime;
}
{
$Log$
Revision 1.1 2001-08-19 21:02:02 florian
* fixed and added a lot of stuff to get the Jedi DX( headers
compiled
Revision 1.2 2001-11-08 16:17:30 florian
+ beginning of variant dispatching
Revision 1.1 2001/08/19 21:02:02 florian
* fixed and added a lot of stuff to get the Jedi DX8 headers
compiled
}

View File

@ -66,7 +66,7 @@ const
FileNameCaseSensitive : boolean = true;
sLineBreak : string[2] = LineEnding;
sLineBreak : string = LineEnding;
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
{ Thread count for DLL }
@ -1503,25 +1503,23 @@ begin
Rewrite(T);
end;
const
Exe_entry_code : pointer = @Exe_entry;
Dll_entry_code : pointer = @Dll_entry;
begin
{ get some helpful informations }
{ get some helpful informations }
GetStartupInfo(@startupinfo);
{ some misc Win32 stuff }
{ some misc Win32 stuff }
hprevinst:=0;
if not IsLibrary then
HInstance:=getmodulehandle(GetCommandFile);
MainInstance:=HInstance;
cmdshow:=startupinfo.wshowwindow;
{ to test stack depth }
{ to test stack depth }
loweststack:=maxlongint;
{ real test stack depth }
{ stacklimit := setupstack; }
{ real test stack depth }
{ stacklimit := setupstack; }
{$ifdef MT}
{ allocate one threadvar entry from windows, we use this entry }
{ for a pointer to our threadvars }
@ -1529,11 +1527,11 @@ begin
{ the exceptions use threadvars so do this _before_ initexceptions }
AllocateThreadVars;
{$endif MT}
{ Setup heap }
{ Setup heap }
InitHeap;
InitExceptions;
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
displayed in and messagebox }
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
displayed in and messagebox }
StdInputHandle:=longint(GetStdHandle(STD_INPUT_HANDLE));
StdOutputHandle:=longint(GetStdHandle(STD_OUTPUT_HANDLE));
StdErrorHandle:=longint(GetStdHandle(STD_ERROR_HANDLE));
@ -1551,11 +1549,11 @@ begin
OpenStdIO(StdOut,fmOutput,StdOutputHandle);
OpenStdIO(StdErr,fmOutput,StdErrorHandle);
end;
{ Arguments }
{ Arguments }
setup_arguments;
{ Reset IO Error }
{ Reset IO Error }
InOutRes:=0;
{ Reset internal error variable }
{ Reset internal error variable }
errno:=0;
{$ifdef HASVARIANT}
initvariantmanager;
@ -1564,7 +1562,10 @@ end.
{
$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
Revision 1.19 2001/10/23 21:51:03 peter
@ -1574,7 +1575,7 @@ end.
* bugfix #1639 (IsMultiThread varialbe setting)
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
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
+ removed logs
}
}