class: ExternalLong
authorClaus Gittinger <cg@exept.de>
Fri, 29 Mar 2013 10:02:34 +0100
changeset 2957 98059fd56826
parent 2956 04467dace26c
child 2958 d71355c0de67
class: ExternalLong comment/format in: #documentation changed: #new #unprotectedNew #value 64bit fixes (odbc was broken)
ExternalLong.st
--- a/ExternalLong.st	Fri Mar 29 07:52:39 2013 +0100
+++ b/ExternalLong.st	Fri Mar 29 10:02:34 2013 +0100
@@ -36,7 +36,10 @@
 
 documentation
 "
-    mostly added for odbc
+    mostly added for odbc, which uses instances of me as container in which values
+    (pointers) are returned. The name is misleading: it should be ExternalPointer,
+    because on machines where sizeof(long) !!= sizeof(void *), that makes a difference.
+    However, over time, others started to use this class, and renaming it would break some code.
 "
 ! !
 
@@ -58,7 +61,7 @@
                    MANUALLY freed (see #free) or the returned externalBytes object
                    is unprotected or the classes releaseAllMemory method is called."
 
-    ^ super new:4
+    ^ super new:(ExternalAddress pointerSize)
 
     "
      ExternalLong new
@@ -78,7 +81,7 @@
                    If the memory has been passed to a C-function which
                    remembers this pointer, bad things may happen ...."
 
-    ^ super unprotectedNew:4
+    ^ super unprotectedNew:(ExternalAddress pointerSize)
 
     "
      ExternalLong new
@@ -152,7 +155,7 @@
 !
 
 value
-    ^ self doubleWordAt:1
+    ^ self pointerAt:1
 
     "
      ExternalLong new value:10
@@ -176,9 +179,10 @@
 !ExternalLong class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.10 2011-01-05 15:08:41 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.11 2013-03-29 09:02:34 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.10 2011-01-05 15:08:41 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/ExternalLong.st,v 1.11 2013-03-29 09:02:34 cg Exp $'
 ! !
+