Browse Source

+ Add RTE 236 for thread errors:
inc/systemh.inc and java/jsystemh.inc:
+ Add reThreadError (and also reNoDynLibsSupport) to TRuntimeError.
* Add new values to RuntimeErrorExitCodes after extension of TRuntimeError
inc/system.inc and java/jsystem.inc:
* use RTE 236 in fpc_threaderror.
objpas/sysconst.pp and objpas/sysutils/stre.inc:
+ Add SThreadError string constant.
objpas/sysutils/sysutilh.inc:
+ Add EThreadError class.
objpas/sysutils/sysutils.inc
+ Add 236 to EThreadError conversion to exeptmap.

git-svn-id: trunk@38584 -

pierre 7 years ago
parent
commit
250e924ad3

+ 1 - 1
rtl/inc/system.inc

@@ -805,7 +805,7 @@ end;
 
 
 procedure fpc_threaderror; [public,alias:'FPC_THREADERROR'];
 procedure fpc_threaderror; [public,alias:'FPC_THREADERROR'];
 begin
 begin
-  HandleErrorAddrFrameInd(6,get_pc_addr,get_frame);
+    HandleErrorAddrFrameInd(236{RuntimeErrorExitCodes[reThreadError]},get_pc_addr,get_frame);
 end;
 end;
 
 
 
 

+ 2 - 2
rtl/inc/systemh.inc

@@ -1524,7 +1524,7 @@ type
      reStackOverflow, reVarTypeCast, reVarInvalidOp, reVarDispatch,
      reStackOverflow, reVarTypeCast, reVarInvalidOp, reVarDispatch,
      reVarArrayCreate, reVarNotArray, reVarArrayBounds, reAssertionFailed,
      reVarArrayCreate, reVarNotArray, reVarArrayBounds, reAssertionFailed,
      reExternalException, reIntfCastError, reSafeCallError, reQuit,
      reExternalException, reIntfCastError, reSafeCallError, reQuit,
-     reCodesetConversion);
+     reCodesetConversion, reNoDynLibsSupport, reThreadError);
 
 
 Const
 Const
   // Please keep locations corresponding to location in array above
   // Please keep locations corresponding to location in array above
@@ -1535,7 +1535,7 @@ Const
      202, 220, 221, 222,
      202, 220, 221, 222,
      223, 224, 225, 227,
      223, 224, 225, 227,
      212, 228, 229, 233,
      212, 228, 229, 233,
-     234);
+     234, 235, 236);
 
 
 Procedure Error(RunTimeError : TRunTimeError);
 Procedure Error(RunTimeError : TRunTimeError);
 {$ifdef FPC_HAS_FEATURE_COMMANDARGS}
 {$ifdef FPC_HAS_FEATURE_COMMANDARGS}

+ 1 - 1
rtl/java/jsystem.inc

@@ -740,7 +740,7 @@ end;
 
 
 procedure fpc_threaderror; [public,alias:'FPC_THREADERROR'];
 procedure fpc_threaderror; [public,alias:'FPC_THREADERROR'];
 begin
 begin
-  HandleErrorAddrFrameInd(6,get_pc_addr,get_frame);
+  HandleErrorAddrFrameInd(236{RuntimeErrorExitCodes[reThreadError]},get_pc_addr,get_frame);
 end;
 end;
 
 
 
 

+ 2 - 2
rtl/java/jsystemh.inc

@@ -763,7 +763,7 @@ type
      reStackOverflow, reVarTypeCast, reVarInvalidOp, reVarDispatch,
      reStackOverflow, reVarTypeCast, reVarInvalidOp, reVarDispatch,
      reVarArrayCreate, reVarNotArray, reVarArrayBounds, reAssertionFailed,
      reVarArrayCreate, reVarNotArray, reVarArrayBounds, reAssertionFailed,
      reExternalException, reIntfCastError, reSafeCallError, reQuit,
      reExternalException, reIntfCastError, reSafeCallError, reQuit,
-     reCodesetConversion);
+     reCodesetConversion, reNoDynLibsSupport, reThreadError);
 
 
 Const
 Const
   // Please keep locations corresponding to location in array above
   // Please keep locations corresponding to location in array above
@@ -774,7 +774,7 @@ Const
      202, 220, 221, 222,
      202, 220, 221, 222,
      223, 224, 225, 227,
      223, 224, 225, 227,
      212, 228, 229, 233,
      212, 228, 229, 233,
-     234);
+     234, 235, 236);
 
 
 Procedure Error(RunTimeError : TRunTimeError);
 Procedure Error(RunTimeError : TRunTimeError);
 {$ifdef FPC_HAS_FEATURE_COMMANDARGS}
 {$ifdef FPC_HAS_FEATURE_COMMANDARGS}

+ 1 - 0
rtl/objpas/sysconst.pp

@@ -98,6 +98,7 @@ const
   SStackOverflow         = 'Stack overflow';
   SStackOverflow         = 'Stack overflow';
   SSafecallException     = 'Exception in safecall method';
   SSafecallException     = 'Exception in safecall method';
   SiconvError            = 'iconv error';
   SiconvError            = 'iconv error';
+  SThreadError           = 'Thread error';
 
 
   STooManyOpenFiles      = 'Too many open files';
   STooManyOpenFiles      = 'Too many open files';
   SUnKnownRunTimeError   = 'Unknown Run-Time error : %3.3d';
   SUnKnownRunTimeError   = 'Unknown Run-Time error : %3.3d';

+ 1 - 0
rtl/objpas/sysutils/stre.inc

@@ -74,3 +74,4 @@ Const
    SVarArrayCreate = 'Variant array cannot be created';
    SVarArrayCreate = 'Variant array cannot be created';
    SVarNotArray = 'Variant doesn''t contain an array';
    SVarNotArray = 'Variant doesn''t contain an array';
    SiconvError = 'iconv error';
    SiconvError = 'iconv error';
+   SThreadError = 'Thread error';

+ 1 - 0
rtl/objpas/sysutils/sysutilh.inc

@@ -192,6 +192,7 @@ type
    EAbstractError   = Class(Exception);
    EAbstractError   = Class(Exception);
    EAssertionFailed = Class(Exception);
    EAssertionFailed = Class(Exception);
    EObjectCheck     = Class(Exception);
    EObjectCheck     = Class(Exception);
+   EThreadError     = Class(Exception);
 
 
    EPropReadOnly = class(Exception);
    EPropReadOnly = class(Exception);
    EPropWriteOnly = class(Exception);
    EPropWriteOnly = class(Exception);

+ 3 - 2
rtl/objpas/sysutils/sysutils.inc

@@ -342,7 +342,7 @@ type
   end;
   end;
 
 
 const
 const
-  exceptmap: array[0..29] of TExceptMapEntry = (
+  exceptmap: array[0..30] of TExceptMapEntry = (
     (code: 200; cls: EDivByZero;     msg: @SDivByZero),
     (code: 200; cls: EDivByZero;     msg: @SDivByZero),
     (code: 201; cls: ERangeError;    msg: @SRangeError),
     (code: 201; cls: ERangeError;    msg: @SRangeError),
     (code: 202; cls: EStackOverflow; msg: @SStackOverflow),
     (code: 202; cls: EStackOverflow; msg: @SStackOverflow),
@@ -373,7 +373,8 @@ const
     (code: 232; cls: ENoThreadSupport; msg: @SNoThreadSupport),
     (code: 232; cls: ENoThreadSupport; msg: @SNoThreadSupport),
     (code: 233; cls: ENoWideStringSupport; msg: @SSigQuit),
     (code: 233; cls: ENoWideStringSupport; msg: @SSigQuit),
     (code: 234; cls: ENoWideStringSupport; msg: @SMissingWStringManager),
     (code: 234; cls: ENoWideStringSupport; msg: @SMissingWStringManager),
-    (code: 235; cls: ENoDynLibsSupport; msg: @SNoDynLibsSupport)
+    (code: 235; cls: ENoDynLibsSupport; msg: @SNoDynLibsSupport),
+    (code: 236; cls: EThreadError; msg: @SThreadError)
   );
   );
 
 
 function FindExceptMapEntry(err: longint): PExceptMapEntry;
 function FindExceptMapEntry(err: longint): PExceptMapEntry;