--- 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)