@@ -1,27 +1,38 @@
+
+{$ifdef go32v2}
+ uses dpmiexcp;
+{$endif go32v2}
+const
+ nextoptpass : longint = 0;
procedure init;
- var
- endofparas : boolean;
+ const
+ endofparas : boolean = false;
procedure getparastring;
procedure nextopt;
begin
+ endofparas:=true;
getparastring;
+ inc(nextoptpass);
init;
- endofparas:=false;
end;
+ if not endofparas then
nextopt;
- getparastring;
+ getparastring;
+ if nextoptpass<>1 then Halt(1);
end.
@@ -1,3 +1,5 @@
+{ $OPT=-S2 }
+{ classes need objpas !! }
{ needed to intercept GPF (PM) }
{$ifdef go32v2}
uses dpmiexcp;
@@ -29,8 +29,24 @@ type
var
p : pa;
data : array[0..4] of longint;
+ saveexit : pointer;
+ procedure testerror;
+ begin
+ exitproc:=saveexit;
+ if errorcode=210 then
+ errorcode:=0;
+ writeln('Object valid VMT check works');
+ runerror(0);
+ end
+ else
+ halt(1);
+ end;
+ saveexit:=exitproc;
+ exitproc:=@testerror;
fillchar(data,sizeof(data),12);
p:=new(pa,init);
p^.p;
@@ -4,5 +4,6 @@ var
o : tobject;
- halt(1);
+ if assigned(o) then