.
--- a/Make.proto Tue Jun 06 05:56:11 1995 +0200
+++ b/Make.proto Tue Jun 06 06:01:20 1995 +0200
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.30 1995-05-24 12:44:58 claus Exp $
+# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.31 1995-06-06 04:01:20 claus Exp $
#
# -------------- no need to change anything below ----------
@@ -8,7 +8,7 @@
LIBNAME=libbasic
STCOPT=$(LIBBASIC_STCOPT)
-STCLOCALOPT='-Pbasic-classes-(libbasic)' -warnGlobalAssign +optinline2 $(COMMONSYMBOLS) +sharedLibCode
+STCLOCALOPT='-Pbasic-classes-(libbasic)' -warnGlobalAssign +optinline2 $(COMMONSYMBOLS)
UNCRITICALOPT=+optspace
@@ -41,7 +41,6 @@
Symbol.$(O) \
UIBytes.$(O) \
DoubleArray.$(O) \
- ExtBytes.$(O) \
FloatArray.$(O) \
Interval.$(O) \
LinkList.$(O) \
@@ -193,6 +192,7 @@
True.$(O): True.st $(BOOLEAN)
False.$(O): False.st $(BOOLEAN)
+# VMBehavior.$(O): VMBehavior.st $(OBJECT)
Behavior.$(O): Behavior.st $(OBJECT)
ClassDescr.$(O): ClassDescr.st $(BEHAVIOR)
Class.$(O): Class.st $(I)/ClassDescr.H $(BEHAVIOR)
@@ -260,7 +260,6 @@
WeakArr.$(O): WeakArr.st $(ARRAY)
FloatArray.$(O): FloatArray.st $(ARRCOLL)
DoubleArray.$(O): DoubleArray.st $(ARRCOLL)
-ExtBytes.$(O): ExtBytes.st $(ARRCOLL)
ByteArray.$(O): ByteArray.st $(ARRCOLL)
UIBytes.$(O): UIBytes.st $(BYTEARRAY)
CharArray.$(O): CharArray.st $(BYTEARRAY)
--- a/WeakIdDict.st Tue Jun 06 05:56:11 1995 +0200
+++ b/WeakIdDict.st Tue Jun 06 06:01:20 1995 +0200
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -19,9 +19,9 @@
WeakIdentityDictionary comment:'
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Attic/WeakIdDict.st,v 1.6 1994-10-10 00:29:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakIdDict.st,v 1.7 1995-06-06 04:01:15 claus Exp $
'!
!WeakIdentityDictionary class methodsFor:'documentation'!
@@ -29,7 +29,7 @@
copyright
"
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Attic/WeakIdDict.st,v 1.6 1994-10-10 00:29:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakIdDict.st,v 1.7 1995-06-06 04:01:15 claus Exp $
"
!
@@ -76,13 +76,21 @@
"an element (either key or value) died - rehash"
| sz "{ Class:SmallInteger }"
- any |
+ any wasBlocked |
+
+ "
+ have to block here - dispose may be done at a low priority
+ from the background finalizer. If new views are opened in
+ the foreground, the dependency dictionary may get corrupted
+ otherwise
+ "
+ wasBlocked := OperatingSystem blockInterrupts.
sz := keyArray size.
any := false.
1 to:sz do:[:index |
- (keyArray at:index) isNil ifTrue:[
- (valueArray at:index) notNil ifTrue:[
+ (keyArray at:index) isNil ifTrue:[
+ (valueArray at:index) notNil ifTrue:[
"
if the next slot is not nil, it could be there due
to a hash collision. In this case we have to put a
@@ -99,14 +107,16 @@
"/ (keyArray basicAt:next) notNil ifTrue:[
"/ (valueArray basicAt:next) notNil ifTrue:[
"/ keyArray basicAt:index put:DeletedEntry
-"/ ]
+"/ ]
"/ ].
- valueArray at:index put:nil.
- tally := tally - 1.
- any := true
- ]
- ]
+ valueArray at:index put:nil.
+ tally := tally - 1.
+ any := true
+ ]
+ ]
].
- any ifTrue:[self rehash]
+ any ifTrue:[self rehash].
+
+ wasBlocked ifTrue:[OperatingSystem unblockInterrupts].
! !
--- a/WeakIdentityDictionary.st Tue Jun 06 05:56:11 1995 +0200
+++ b/WeakIdentityDictionary.st Tue Jun 06 06:01:20 1995 +0200
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -19,9 +19,9 @@
WeakIdentityDictionary comment:'
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.6 1994-10-10 00:29:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.7 1995-06-06 04:01:15 claus Exp $
'!
!WeakIdentityDictionary class methodsFor:'documentation'!
@@ -29,7 +29,7 @@
copyright
"
COPYRIGHT (c) 1992 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.6 1994-10-10 00:29:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.7 1995-06-06 04:01:15 claus Exp $
"
!
@@ -76,13 +76,21 @@
"an element (either key or value) died - rehash"
| sz "{ Class:SmallInteger }"
- any |
+ any wasBlocked |
+
+ "
+ have to block here - dispose may be done at a low priority
+ from the background finalizer. If new views are opened in
+ the foreground, the dependency dictionary may get corrupted
+ otherwise
+ "
+ wasBlocked := OperatingSystem blockInterrupts.
sz := keyArray size.
any := false.
1 to:sz do:[:index |
- (keyArray at:index) isNil ifTrue:[
- (valueArray at:index) notNil ifTrue:[
+ (keyArray at:index) isNil ifTrue:[
+ (valueArray at:index) notNil ifTrue:[
"
if the next slot is not nil, it could be there due
to a hash collision. In this case we have to put a
@@ -99,14 +107,16 @@
"/ (keyArray basicAt:next) notNil ifTrue:[
"/ (valueArray basicAt:next) notNil ifTrue:[
"/ keyArray basicAt:index put:DeletedEntry
-"/ ]
+"/ ]
"/ ].
- valueArray at:index put:nil.
- tally := tally - 1.
- any := true
- ]
- ]
+ valueArray at:index put:nil.
+ tally := tally - 1.
+ any := true
+ ]
+ ]
].
- any ifTrue:[self rehash]
+ any ifTrue:[self rehash].
+
+ wasBlocked ifTrue:[OperatingSystem unblockInterrupts].
! !