Object.st
changeset 375 e5019c22f40e
parent 370 20f04d9b371b
child 379 5b5a130ccd09
--- a/Object.st	Sat Aug 05 16:05:36 1995 +0200
+++ b/Object.st	Tue Aug 08 02:49:43 1995 +0200
@@ -30,7 +30,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Object.st,v 1.55 1995-08-03 01:16:04 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Object.st,v 1.56 1995-08-08 00:47:59 claus Exp $
 '!
 
 !Object class methodsFor:'documentation'!
@@ -51,7 +51,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Object.st,v 1.55 1995-08-03 01:16:04 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Object.st,v 1.56 1995-08-08 00:47:59 claus Exp $
 "
 !
 
@@ -296,6 +296,12 @@
      messages. The default is true."
 
     InfoPrinting := aBoolean
+!
+
+infoPrinting
+    "return the flag which controls information messages."
+
+    ^ InfoPrinting
 ! !
 
 !Object class methodsFor:'queries'!
@@ -1261,8 +1267,8 @@
     REGISTER unsigned h;
 
     if (__isNonNilObject(self) && __isNonNilObject(anObject)) {
-	h = _GET_HASH(anObject);
-	_SET_HASH(self, h);
+	h = __GET_HASH(anObject);
+	__SET_HASH(self, h);
 	RETURN (self);
     }
 %}
@@ -1343,15 +1349,15 @@
     OBJ cls;
 
     if (__isNonNilObject(self)) {
-	hash = _GET_HASH(self);
+	hash = __GET_HASH(self);
 	if (hash == 0) {
 	    hash = nextHash++;
-	    _SET_HASH(self, hash);
-	    hash = _GET_HASH(self);
+	    __SET_HASH(self, hash);
+	    hash = __GET_HASH(self);
 	    if (hash == 0) {
 		hash = nextHash++;
-		_SET_HASH(self, hash);
-		hash = _GET_HASH(self);
+		__SET_HASH(self, hash);
+		hash = __GET_HASH(self);
 	    }
 	}
 
@@ -1411,13 +1417,15 @@
     self error:'timer Interrupt - but no handler'
 !
 
-errorInterrupt:errorID
-    "subsystem error. The argument errorID is the parameter passed
-     to the 'errorInterruptWithID(id)' function, which can be called from
-     c subsystems to raise an error exception.
+errorInterrupt:errorID with:aParameter
+    "subsystem error. The arguments errorID and aParameter are the values passed
+     to the 'errorInterruptWithIDAndParameter(id, param)' function, 
+     which can be called from C subsystems to raise an (asynchronous)
+     error exception.
 
      Currently, this is used to map XErrors to smalltalk errors, but can be
-     used from other c subsystems too, to upcast errors.
+     used from other C subsystems too, to upcast errors.
+     Especially, for subsystems which call errorHandler functions asynchronously.
      IDs (currently) used:
 	#DisplayError ..... x-error interrupt
 	#XtError      ..... xt-error interrupt (Xt interface is not yet published)
@@ -1427,11 +1435,16 @@
 
     handler := ObjectMemory registeredErrorInterruptHandlers at:errorID ifAbsent:nil.
     handler notNil ifTrue:[
-	handler errorInterrupt:errorID.
+	"/
+	"/ handler found; let it do whatever it wants ...
+	"/
+	handler errorInterrupt:errorID with:aParameter.
 	^ self
     ].
 
-    "no handler - raise errorSignal"
+    "/
+    "/ no handler - raise errorSignal passing the errorId as parameter
+    "/
     ^ ErrorSignal 
 	raiseRequestWith:errorID 
 	errorString:('Subsystem error. ErrorID = ' , errorID printString)