class: ExternalLong
comment/format in:
#asInteger
#asUnsignedInteger
changed:
#asPointer
#value
#value:
--- a/ExternalLong.st Fri Mar 29 10:02:34 2013 +0100
+++ b/ExternalLong.st Fri Mar 29 15:42:07 2013 +0100
@@ -112,6 +112,8 @@
!
asInteger
+ "warning: only returns a 32bit integer"
+
^ self signedDoubleWordAt:1 MSB:false
"
@@ -132,7 +134,11 @@
!
asPointer
- ^ ExternalAddress new setAddress:(self value)
+ "fetch my cell's pointer value
+ (use this if you passed me to a C function as out parameter, to fetch the returned value)"
+
+ "/ ^ ExternalAddress new setAddress:(self value address)
+ ^ self pointerAt:1.
"
(ExternalLong new value:10) asPointer
@@ -140,10 +146,12 @@
!
asUnsignedInteger
+ "warning: only returns a 32bit integer"
+
^ self doubleWordAt:1 MSB:false
"
- (ExternalLong new value:10) asUnsignedInteger
+ (ExternalLong new value:10) asUnsignedInteger
"
"Created: / 22-12-2010 / 18:31:03 / cg"
@@ -155,17 +163,18 @@
!
value
- ^ self pointerAt:1
+ ^ (self pointerAt:1) address
"
- ExternalLong new value:10
+ (ExternalLong new value:10) value
"
"Modified: / 30.3.1998 / 17:07:57 / cg"
!
value:anInteger
- self doubleWordAt:1 put:anInteger
+ "/ self doubleWordAt:1 put:anInteger
+ self pointerAt:1 put:(ExternalAddress newAddress:anInteger)
! !
!ExternalLong methodsFor:'printing & storing'!
@@ -179,10 +188,10 @@
!ExternalLong class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.11 2013-03-29 09:02:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.12 2013-03-29 14:42:07 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.11 2013-03-29 09:02:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.12 2013-03-29 14:42:07 cg Exp $'
! !