List Info

Thread: CStruct pointers-to-CStructs don't work properly




CStruct pointers-to-CStructs don't work properly
country flaguser name
United States
2008-01-03 09:15:39
Issue status update for 
http://smalltalk.gn
u.org/node/148
Post a follow up: 
htt
p://smalltalk.gnu.org/project/comments/add/148

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    Base classes
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  tonyg
 Updated by:   tonyg
 Status:       active
 Attachment:   htt
p://smalltalk.gnu.org/files/issues/ctype.patch (643
bytes)

Given a CStruct #StructA with a member #b of type (#ptr
#StructB), I was
expecting to be able to call

 st> myA b
 CPtr(16r80728C4)

as well as

 st> myA b value
 StructB(16r80728D0)

However, what I actually get is:

 st> myA b value
 Object: CPtr new: 1 "<0x40338b18>" error:
Invalid argument StructB
 SystemExceptions.WrongClass(Exception)>>signal
 SystemExceptions.WrongClass
class(SystemExceptions.InvalidValue
class)>>signalOn:
 CPtr(CObject)>>derefAt:type:
 CPtr>>value
 UndefinedObject>>executeStatements
 nil

The fault is in CType>>#storeOn: and CType
class>>#from:. The #storeOn:
method prints the raw cObjectType instance variable, where
it should
print "self cObjectType" instead; and #from:
returns a class,
(Namespace current at: type), where it should return the
class's type,
((Namespace current at: type) type).

Patch against gst 2.95h attached. Test case to follow.




_______________________________________________
help-smalltalk mailing list
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

CStruct pointers-to-CStructs don't work properly
country flaguser name
United States
2008-01-03 09:20:26
Issue status update for 
http://sma
lltalk.gnu.org/project/issue/148
Post a follow up: 
htt
p://smalltalk.gnu.org/project/comments/add/148

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    Base classes
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  tonyg
 Updated by:   tonyg
 Status:       active
 Attachment:   http
://smalltalk.gnu.org/files/issues/testcase.c (604
bytes)

Test case: C code




_______________________________________________
help-smalltalk mailing list
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

CStruct pointers-to-CStructs don't work properly
country flaguser name
United States
2008-01-03 09:20:58
Issue status update for 
http://sma
lltalk.gnu.org/project/issue/148
Post a follow up: 
htt
p://smalltalk.gnu.org/project/comments/add/148

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    Base classes
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  tonyg
 Updated by:   tonyg
 Status:       active
 Attachment:   htt
p://smalltalk.gnu.org/files/issues/testcase.st (1.33
KB)

Test case: Smalltalk code




_______________________________________________
help-smalltalk mailing list
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

CStruct pointers-to-CStructs don't work properly
country flaguser name
United States
2008-01-03 09:21:21
Issue status update for 
http://sma
lltalk.gnu.org/project/issue/148
Post a follow up: 
htt
p://smalltalk.gnu.org/project/comments/add/148

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    Base classes
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  tonyg
 Updated by:   tonyg
 Status:       active

Steps:

$ gcc -shared -o testcase.so testcase.c
$ gst testcase.st

Expected output:

$ gst testcase.st 
malloced foo = 0x8073950
malloced bar = 0x8073960
Foo: Foo(16r8073950)
Foo aNumber: CInt(16r8073950)
Foo aNumber value: 123
Foo bar: CPtr(16r8073954)
Foo bar value: Bar(16r8073960)
Foo bar value aString: CString(16r8073960)
Foo bar value aString value: hello
Foo bar value anotherNumber: CInt(16r8073964)
Foo bar value anotherNumber value: 234

Actual output:

$ gst testcase.st 
malloced foo = 0x80728c0
malloced bar = 0x80728d0
Foo: Foo(16r80728C0)
Foo aNumber: CInt(16r80728C0)
Foo aNumber value: 123
Foo bar: CPtr(16r80728C4)
Foo bar value: Object: CPtr new: 1
"<0x40327830>" error: Invalid
argument Bar
SystemExceptions.WrongClass(Exception)>>signal
SystemExceptions.WrongClass
class(SystemExceptions.InvalidValue
class)>>signalOn:
CPtr(CObject)>>derefAt:type:
CPtr>>value
Testcase>>run
UndefinedObject>>executeStatements




_______________________________________________
help-smalltalk mailing list
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

CStruct pointers-to-CStructs don't work properly
country flaguser name
United States
2008-01-04 03:09:44
Issue status update for 
http://sma
lltalk.gnu.org/project/issue/148
Post a follow up: 
htt
p://smalltalk.gnu.org/project/comments/add/148

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    Base classes
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  tonyg
 Updated by:   bonzinip
-Status:       active
+Status:       fixed

forgot to close it.




_______________________________________________
help-smalltalk mailing list
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

[1-5]

about | contact  Other archives ( Real Estate discussion Medical topics )