--- a/FileStream.st Mon Feb 01 19:14:37 2010 +0100
+++ b/FileStream.st Mon Feb 01 19:19:02 2010 +0100
@@ -1357,13 +1357,13 @@
wasBlocked = __BLOCKINTERRUPTS();
#if 0
// The original code was:
- __INST(handle) = fp = __MKOBJ((INT)f); __STORE(self, fp);
+ __INST(handle) = fp = __MKEXTERNALADDRESS(f); __STORE(self, fp);
// but for that, gcc generates wrong code, which loads self (volatile) into
- // a register (bp), then calls __MKOBJ, then stores indirect bp.
- // That is wrong if a scavenge occurs in MKOBJ, as bp is now still pointing to the old
+ // a register (bp), then calls __MKEXTERNALADDRESS, then stores indirect bp.
+ // That is wrong if a scavenge occurs in __MKEXTERNALADDRESS, as bp is now still pointing to the old
// object.
#else
- fp = __MKOBJ((INT)f);
+ fp = __MKEXTERNALADDRESS(f);
__INST(handle) = fp;
__STORE(self, fp);
#endif
@@ -1652,11 +1652,11 @@
!FileStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.137 2009-12-21 15:36:02 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.138 2010-02-01 18:19:02 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.137 2009-12-21 15:36:02 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.138 2010-02-01 18:19:02 stefan Exp $'
! !
FileStream initialize!