Object.st
changeset 2227 eb1e28c62f14
parent 2209 6ddff479f0ea
child 2229 a9881102b243
--- a/Object.st	Wed Jan 22 20:30:51 1997 +0100
+++ b/Object.st	Wed Jan 22 21:05:02 1997 +0100
@@ -19,7 +19,7 @@
 		ElementOutOfBoundsSignal UserNotificationSignal InformationSignal
 		WarningSignal PrimitiveFailureSignal DeepCopyErrorSignal
 		AbortSignal ErrorRecursion Dependencies InfoPrinting
-		ActivityNotificationSignal NonWeakDependencies'
+		ActivityNotificationSignal InternalErrorSignal NonWeakDependencies'
 	poolDictionaries:''
 	category:'Kernel-Objects'
 !
@@ -170,6 +170,10 @@
         PrimitiveFailureSignal nameClass:self message:#primitiveFailureSignal.
         PrimitiveFailureSignal notifierString:'primitive failed'.
 
+        InternalErrorSignal := ErrorSignal newSignalMayProceed:false.
+        InternalErrorSignal nameClass:self message:#internalError.
+        InternalErrorSignal notifierString:'VM internal error: '.
+
 "/        UserInterruptSignal := ErrorSignal newSignalMayProceed:true.
         UserInterruptSignal := (Signal new) mayProceed:true.
         UserInterruptSignal nameClass:self message:#userInterruptSignal.
@@ -308,6 +312,12 @@
     ^ InformationSignal
 !
 
+internalErrorSignal
+    "return the signal used to report internal (VM-) errors."
+
+    ^ InternalErrorSignal
+!
+
 keyNotFoundSignal 
     "return the signal used for no such key error reporting"
 
@@ -2896,14 +2906,16 @@
 internalError:msg
     "{ Pragma: +optSpace }"
 
-    "this is triggered, when system hits some bad error,
+    "this is triggered, when VM hits some bad error,
      such as corrupted class, corrupted method/selector array
      etc. The argument string gives some more information on what happened.
-     (for example, if you set an objects class to a smallInteger, nil etc). 
+     (for example, if you set an objects class to a non-behavior, nil etc.).
      Its not guaranteed, that the system is in a working condition once
      this error occurred ...."
 
-    ^ self error:msg
+    ^ InternalErrorSignal
+          raiseRequestWith:self
+          errorString:msg
 !
 
 ioInterrupt
@@ -5539,6 +5551,6 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.165 1997-01-20 16:11:45 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.166 1997-01-22 20:05:02 cg Exp $'
 ! !
 Object initialize!