class: ExternalLong
authorClaus Gittinger <cg@exept.de>
Fri, 29 Mar 2013 15:42:07 +0100
changeset 2958 d71355c0de67
parent 2957 98059fd56826
child 2959 248125161a88
class: ExternalLong comment/format in: #asInteger #asUnsignedInteger changed: #asPointer #value #value:
ExternalLong.st
--- 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 $'
 ! !