|
@@ -98,9 +98,6 @@ implementation
|
|
{$endif cpu64bit}
|
|
{$endif cpu64bit}
|
|
;
|
|
;
|
|
|
|
|
|
- const
|
|
|
|
- EXCEPT_BUF_SIZE = 12;
|
|
|
|
-
|
|
|
|
{*****************************************************************************
|
|
{*****************************************************************************
|
|
Second_While_RepeatN
|
|
Second_While_RepeatN
|
|
*****************************************************************************}
|
|
*****************************************************************************}
|
|
@@ -863,25 +860,6 @@ implementation
|
|
endexceptlabel : tasmlabel;
|
|
endexceptlabel : tasmlabel;
|
|
|
|
|
|
|
|
|
|
- procedure try_new_exception(list : taasmoutput;var jmpbuf,envbuf, href : treference;
|
|
|
|
- a : aword; exceptlabel : tasmlabel);
|
|
|
|
- begin
|
|
|
|
- tg.GetTemp(list,EXCEPT_BUF_SIZE,tt_persistent,envbuf);
|
|
|
|
- tg.GetTemp(list,JMP_BUF_SIZE,tt_persistent,jmpbuf);
|
|
|
|
- tg.GetTemp(list,sizeof(aword),tt_persistent,href);
|
|
|
|
- new_exception(list, jmpbuf,envbuf, href, a, exceptlabel);
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- procedure try_free_exception(list : taasmoutput;var jmpbuf, envbuf : treference;const href : treference;
|
|
|
|
- a : aword ; endexceptlabel : tasmlabel; onlyfree : boolean);
|
|
|
|
- begin
|
|
|
|
- free_exception(list, jmpbuf, envbuf, href, a, endexceptlabel, onlyfree);
|
|
|
|
- tg.Ungettemp(list,jmpbuf);
|
|
|
|
- tg.ungettemp(list,envbuf);
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
{ does the necessary things to clean up the object stack }
|
|
{ does the necessary things to clean up the object stack }
|
|
{ in the except block }
|
|
{ in the except block }
|
|
procedure cleanupobjectstack;
|
|
procedure cleanupobjectstack;
|
|
@@ -919,8 +897,8 @@ implementation
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldflowcontrol,tryflowcontrol,
|
|
oldflowcontrol,tryflowcontrol,
|
|
exceptflowcontrol : tflowcontrol;
|
|
exceptflowcontrol : tflowcontrol;
|
|
- tempbuf,tempaddr : treference;
|
|
|
|
- href : treference;
|
|
|
|
|
|
+ destroytemps,
|
|
|
|
+ excepttemps : texceptiontemps;
|
|
paraloc1 : tparalocation;
|
|
paraloc1 : tparalocation;
|
|
label
|
|
label
|
|
errorexit;
|
|
errorexit;
|
|
@@ -956,7 +934,8 @@ implementation
|
|
objectlibrary.getlabel(endexceptlabel);
|
|
objectlibrary.getlabel(endexceptlabel);
|
|
objectlibrary.getlabel(lastonlabel);
|
|
objectlibrary.getlabel(lastonlabel);
|
|
|
|
|
|
- try_new_exception(exprasmlist,tempbuf,tempaddr,href,1,exceptlabel);
|
|
|
|
|
|
+ get_exception_temps(exprasmlist,excepttemps);
|
|
|
|
+ new_exception(exprasmlist,excepttemps,1,exceptlabel);
|
|
|
|
|
|
{ try block }
|
|
{ try block }
|
|
{ set control flow labels for the try block }
|
|
{ set control flow labels for the try block }
|
|
@@ -975,7 +954,7 @@ implementation
|
|
|
|
|
|
cg.a_label(exprasmlist,exceptlabel);
|
|
cg.a_label(exprasmlist,exceptlabel);
|
|
|
|
|
|
- try_free_exception(exprasmlist,tempbuf,tempaddr,href,0,endexceptlabel,false);
|
|
|
|
|
|
+ free_exception(exprasmlist, excepttemps, 0, endexceptlabel, false);
|
|
|
|
|
|
cg.a_label(exprasmlist,doexceptlabel);
|
|
cg.a_label(exprasmlist,doexceptlabel);
|
|
|
|
|
|
@@ -1013,7 +992,8 @@ implementation
|
|
objectlibrary.getlabel(doobjectdestroy);
|
|
objectlibrary.getlabel(doobjectdestroy);
|
|
objectlibrary.getlabel(doobjectdestroyandreraise);
|
|
objectlibrary.getlabel(doobjectdestroyandreraise);
|
|
|
|
|
|
- try_new_exception(exprasmlist,tempbuf,tempaddr,href,1,doobjectdestroyandreraise);
|
|
|
|
|
|
+ get_exception_temps(exprasmlist,destroytemps);
|
|
|
|
+ new_exception(exprasmlist,destroytemps,1,doobjectdestroyandreraise);
|
|
|
|
|
|
{ here we don't have to reset flowcontrol }
|
|
{ here we don't have to reset flowcontrol }
|
|
{ the default and on flowcontrols are handled equal }
|
|
{ the default and on flowcontrols are handled equal }
|
|
@@ -1022,7 +1002,7 @@ implementation
|
|
|
|
|
|
cg.a_label(exprasmlist,doobjectdestroyandreraise);
|
|
cg.a_label(exprasmlist,doobjectdestroyandreraise);
|
|
|
|
|
|
- try_free_exception(exprasmlist,tempbuf,tempaddr,href,0,doobjectdestroy,false);
|
|
|
|
|
|
+ free_exception(exprasmlist,destroytemps,0,doobjectdestroy,false);
|
|
|
|
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPSECONDOBJECTSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPSECONDOBJECTSTACK');
|
|
@@ -1041,6 +1021,7 @@ implementation
|
|
|
|
|
|
cg.a_label(exprasmlist,doobjectdestroy);
|
|
cg.a_label(exprasmlist,doobjectdestroy);
|
|
cleanupobjectstack;
|
|
cleanupobjectstack;
|
|
|
|
+ unget_exception_temps(exprasmlist,destroytemps);
|
|
cg.a_jmp_always(exprasmlist,endexceptlabel);
|
|
cg.a_jmp_always(exprasmlist,endexceptlabel);
|
|
end
|
|
end
|
|
else
|
|
else
|
|
@@ -1058,7 +1039,7 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cleanupobjectstack;
|
|
cleanupobjectstack;
|
|
cg.a_jmp_always(exprasmlist,oldaktexitlabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktexitlabel);
|
|
end;
|
|
end;
|
|
@@ -1071,7 +1052,7 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cleanupobjectstack;
|
|
cleanupobjectstack;
|
|
cg.a_jmp_always(exprasmlist,oldaktbreaklabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktbreaklabel);
|
|
end;
|
|
end;
|
|
@@ -1084,7 +1065,7 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cleanupobjectstack;
|
|
cleanupobjectstack;
|
|
cg.a_jmp_always(exprasmlist,oldaktcontinuelabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktcontinuelabel);
|
|
end;
|
|
end;
|
|
@@ -1096,7 +1077,7 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cg.a_jmp_always(exprasmlist,oldaktexitlabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktexitlabel);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1106,7 +1087,7 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cg.a_jmp_always(exprasmlist,oldaktbreaklabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktbreaklabel);
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1116,10 +1097,10 @@ implementation
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPADDRSTACK');
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.deallocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
cg.a_jmp_always(exprasmlist,oldaktcontinuelabel);
|
|
cg.a_jmp_always(exprasmlist,oldaktcontinuelabel);
|
|
end;
|
|
end;
|
|
- tg.ungettemp(exprasmlist,href);
|
|
|
|
|
|
+ unget_exception_temps(exprasmlist,excepttemps);
|
|
cg.a_label(exprasmlist,endexceptlabel);
|
|
cg.a_label(exprasmlist,endexceptlabel);
|
|
|
|
|
|
errorexit:
|
|
errorexit:
|
|
@@ -1152,9 +1133,8 @@ implementation
|
|
doobjectdestroy,
|
|
doobjectdestroy,
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldflowcontrol : tflowcontrol;
|
|
oldflowcontrol : tflowcontrol;
|
|
|
|
+ excepttemps : texceptiontemps;
|
|
exceptref,
|
|
exceptref,
|
|
- tempbuf,tempaddr : treference;
|
|
|
|
- href : treference;
|
|
|
|
href2: treference;
|
|
href2: treference;
|
|
paraloc1 : tparalocation;
|
|
paraloc1 : tparalocation;
|
|
begin
|
|
begin
|
|
@@ -1183,9 +1163,9 @@ implementation
|
|
tvarsym(exceptsymtable.symindex.first).localloc.loc:=LOC_REFERENCE;
|
|
tvarsym(exceptsymtable.symindex.first).localloc.loc:=LOC_REFERENCE;
|
|
tg.GetLocal(exprasmlist,POINTER_SIZE,voidpointertype.def,
|
|
tg.GetLocal(exprasmlist,POINTER_SIZE,voidpointertype.def,
|
|
tvarsym(exceptsymtable.symindex.first).localloc.reference);
|
|
tvarsym(exceptsymtable.symindex.first).localloc.reference);
|
|
- reference_reset_base(href,tvarsym(exceptsymtable.symindex.first).localloc.reference.index,
|
|
|
|
|
|
+ reference_reset_base(href2,tvarsym(exceptsymtable.symindex.first).localloc.reference.index,
|
|
tvarsym(exceptsymtable.symindex.first).localloc.reference.offset);
|
|
tvarsym(exceptsymtable.symindex.first).localloc.reference.offset);
|
|
- cg.a_load_reg_ref(exprasmlist,OS_ADDR,OS_ADDR,NR_FUNCTION_RESULT_REG,href);
|
|
|
|
|
|
+ cg.a_load_reg_ref(exprasmlist,OS_ADDR,OS_ADDR,NR_FUNCTION_RESULT_REG,href2);
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
@@ -1199,7 +1179,8 @@ implementation
|
|
objectlibrary.getlabel(doobjectdestroyandreraise);
|
|
objectlibrary.getlabel(doobjectdestroyandreraise);
|
|
|
|
|
|
{ call setjmp, and jump to finally label on non-zero result }
|
|
{ call setjmp, and jump to finally label on non-zero result }
|
|
- try_new_exception(exprasmlist,tempbuf,tempaddr,href,1,doobjectdestroyandreraise);
|
|
|
|
|
|
+ get_exception_temps(exprasmlist,excepttemps);
|
|
|
|
+ new_exception(exprasmlist,excepttemps,1,doobjectdestroyandreraise);
|
|
|
|
|
|
if assigned(right) then
|
|
if assigned(right) then
|
|
begin
|
|
begin
|
|
@@ -1221,7 +1202,7 @@ implementation
|
|
objectlibrary.getlabel(doobjectdestroy);
|
|
objectlibrary.getlabel(doobjectdestroy);
|
|
cg.a_label(exprasmlist,doobjectdestroyandreraise);
|
|
cg.a_label(exprasmlist,doobjectdestroyandreraise);
|
|
|
|
|
|
- try_free_exception(exprasmlist,tempbuf,tempaddr,href,0,doobjectdestroy,false);
|
|
|
|
|
|
+ free_exception(exprasmlist,excepttemps,0,doobjectdestroy,false);
|
|
|
|
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.allocexplicitregisters(exprasmlist,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
|
|
cg.a_call_name(exprasmlist,'FPC_POPSECONDOBJECTSTACK');
|
|
cg.a_call_name(exprasmlist,'FPC_POPSECONDOBJECTSTACK');
|
|
@@ -1281,6 +1262,7 @@ implementation
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+ unget_exception_temps(exprasmlist,excepttemps);
|
|
cg.a_label(exprasmlist,nextonlabel);
|
|
cg.a_label(exprasmlist,nextonlabel);
|
|
flowcontrol:=oldflowcontrol+flowcontrol;
|
|
flowcontrol:=oldflowcontrol+flowcontrol;
|
|
{ next on node }
|
|
{ next on node }
|
|
@@ -1305,9 +1287,7 @@ implementation
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldaktbreaklabel : tasmlabel;
|
|
oldflowcontrol,tryflowcontrol : tflowcontrol;
|
|
oldflowcontrol,tryflowcontrol : tflowcontrol;
|
|
decconst : longint;
|
|
decconst : longint;
|
|
- tempbuf,tempaddr : treference;
|
|
|
|
- href : treference;
|
|
|
|
-
|
|
|
|
|
|
+ excepttemps : texceptiontemps;
|
|
begin
|
|
begin
|
|
location_reset(location,LOC_VOID,OS_NO);
|
|
location_reset(location,LOC_VOID,OS_NO);
|
|
|
|
|
|
@@ -1345,7 +1325,8 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
{ call setjmp, and jump to finally label on non-zero result }
|
|
{ call setjmp, and jump to finally label on non-zero result }
|
|
- try_new_exception(exprasmlist,tempbuf,tempaddr,href,1,finallylabel);
|
|
|
|
|
|
+ get_exception_temps(exprasmlist,excepttemps);
|
|
|
|
+ new_exception(exprasmlist,excepttemps,1,finallylabel);
|
|
|
|
|
|
{ try code }
|
|
{ try code }
|
|
if assigned(left) then
|
|
if assigned(left) then
|
|
@@ -1358,7 +1339,7 @@ implementation
|
|
|
|
|
|
cg.a_label(exprasmlist,finallylabel);
|
|
cg.a_label(exprasmlist,finallylabel);
|
|
{ just free the frame information }
|
|
{ just free the frame information }
|
|
- try_free_exception(exprasmlist,tempbuf,tempaddr,href,1,finallylabel,true);
|
|
|
|
|
|
+ free_exception(exprasmlist,excepttemps,1,finallylabel,true);
|
|
|
|
|
|
{ finally code }
|
|
{ finally code }
|
|
flowcontrol:=[];
|
|
flowcontrol:=[];
|
|
@@ -1369,7 +1350,7 @@ implementation
|
|
exit;
|
|
exit;
|
|
|
|
|
|
{ the value should now be in the exception handler }
|
|
{ the value should now be in the exception handler }
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
if implicitframe then
|
|
if implicitframe then
|
|
begin
|
|
begin
|
|
cg.a_cmp_const_reg_label(exprasmlist,OS_INT,OC_EQ,0,NR_FUNCTION_RESULT_REG,endfinallylabel);
|
|
cg.a_cmp_const_reg_label(exprasmlist,OS_INT,OC_EQ,0,NR_FUNCTION_RESULT_REG,endfinallylabel);
|
|
@@ -1414,27 +1395,27 @@ implementation
|
|
if fc_exit in tryflowcontrol then
|
|
if fc_exit in tryflowcontrol then
|
|
begin
|
|
begin
|
|
cg.a_label(exprasmlist,exitfinallylabel);
|
|
cg.a_label(exprasmlist,exitfinallylabel);
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
- cg.g_exception_reason_save_const(exprasmlist,href,2);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
|
|
+ cg.g_exception_reason_save_const(exprasmlist,excepttemps.reasonbuf,2);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
end;
|
|
end;
|
|
if fc_break in tryflowcontrol then
|
|
if fc_break in tryflowcontrol then
|
|
begin
|
|
begin
|
|
cg.a_label(exprasmlist,breakfinallylabel);
|
|
cg.a_label(exprasmlist,breakfinallylabel);
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
- cg.g_exception_reason_save_const(exprasmlist,href,3);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
|
|
+ cg.g_exception_reason_save_const(exprasmlist,excepttemps.reasonbuf,3);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
end;
|
|
end;
|
|
if fc_continue in tryflowcontrol then
|
|
if fc_continue in tryflowcontrol then
|
|
begin
|
|
begin
|
|
cg.a_label(exprasmlist,continuefinallylabel);
|
|
cg.a_label(exprasmlist,continuefinallylabel);
|
|
- cg.g_exception_reason_load(exprasmlist,href);
|
|
|
|
- cg.g_exception_reason_save_const(exprasmlist,href,4);
|
|
|
|
|
|
+ cg.g_exception_reason_load(exprasmlist,excepttemps.reasonbuf);
|
|
|
|
+ cg.g_exception_reason_save_const(exprasmlist,excepttemps.reasonbuf,4);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
cg.a_jmp_always(exprasmlist,finallylabel);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
+ unget_exception_temps(exprasmlist,excepttemps);
|
|
cg.a_label(exprasmlist,endfinallylabel);
|
|
cg.a_label(exprasmlist,endfinallylabel);
|
|
- tg.ungettemp(exprasmlist,href);
|
|
|
|
|
|
|
|
current_procinfo.aktexitlabel:=oldaktexitlabel;
|
|
current_procinfo.aktexitlabel:=oldaktexitlabel;
|
|
if assigned(aktbreaklabel) then
|
|
if assigned(aktbreaklabel) then
|
|
@@ -1462,7 +1443,10 @@ begin
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.94 2004-03-02 00:36:33 olle
|
|
|
|
|
|
+ Revision 1.95 2004-03-29 14:43:47 peter
|
|
|
|
+ * cleaner temp get/unget for exceptions
|
|
|
|
+
|
|
|
|
+ Revision 1.94 2004/03/02 00:36:33 olle
|
|
* big transformation of Tai_[const_]Symbol.Create[data]name*
|
|
* big transformation of Tai_[const_]Symbol.Create[data]name*
|
|
|
|
|
|
Revision 1.93 2004/02/27 10:21:05 florian
|
|
Revision 1.93 2004/02/27 10:21:05 florian
|