--- a/WeakArr.st Tue Oct 31 14:17:16 1995 +0100
+++ b/WeakArr.st Tue Oct 31 14:18:25 1995 +0100
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1991 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.15 1995-08-11 03:04:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.16 1995-10-31 13:18:25 cg Exp $
'!
!WeakArray class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.15 1995-08-11 03:04:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.16 1995-10-31 13:18:25 cg Exp $
"
!
@@ -177,11 +177,18 @@
ok = __addShadowObject(self, 0);
#endif
if (ok == false) {
+ extern int __oldGCGeneration__, __igcGeneration__;
+
/*
* hard stuff - need full collect
+ * if this is the very first GC, assume that we are in
+ * the startup phase. Then do no GC.
+ * Heuristics showed, that this GC does not find much ...
*/
- __markAndSweepIfUseful(__context);
- ok = __addShadowObject(self, 0);
+ if ((__oldGCGeneration__ != 0) || (__igcGeneration__ != 0)) {
+ __markAndSweepIfUseful(__context);
+ ok = __addShadowObject(self, 0);
+ }
if (ok == false) {
/*
* mhmh - it seems that there are really many shadow
--- a/WeakArray.st Tue Oct 31 14:17:16 1995 +0100
+++ b/WeakArray.st Tue Oct 31 14:18:25 1995 +0100
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1991 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.15 1995-08-11 03:04:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.16 1995-10-31 13:18:25 cg Exp $
'!
!WeakArray class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.15 1995-08-11 03:04:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.16 1995-10-31 13:18:25 cg Exp $
"
!
@@ -177,11 +177,18 @@
ok = __addShadowObject(self, 0);
#endif
if (ok == false) {
+ extern int __oldGCGeneration__, __igcGeneration__;
+
/*
* hard stuff - need full collect
+ * if this is the very first GC, assume that we are in
+ * the startup phase. Then do no GC.
+ * Heuristics showed, that this GC does not find much ...
*/
- __markAndSweepIfUseful(__context);
- ok = __addShadowObject(self, 0);
+ if ((__oldGCGeneration__ != 0) || (__igcGeneration__ != 0)) {
+ __markAndSweepIfUseful(__context);
+ ok = __addShadowObject(self, 0);
+ }
if (ok == false) {
/*
* mhmh - it seems that there are really many shadow