Fixes
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 18 Jul 2011 15:31:42 +0000
changeset 17 509b9e5d52b2
parent 16 ffcbe7184a53
child 18 2f55519f3d0b
Fixes
Cface__CDerivedTypeNode.st
Cface__CFunctionTypeNode.st
Cface__CPointerNode.st
--- a/Cface__CDerivedTypeNode.st	Tue Jul 12 15:38:42 2011 +0000
+++ b/Cface__CDerivedTypeNode.st	Mon Jul 18 15:31:42 2011 +0000
@@ -51,10 +51,14 @@
 !
 
 smalltalkClassName
-    ^ self smalltalkName asSymbol
+
+    | nm |
+    nm := self smalltalkName.
+    ^nm notNil ifTrue:[nm asSymbol] ifFalse:[nil].
 
     "Created: / 10-07-2008 / 08:01:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 09-09-2008 / 20:15:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 18-07-2011 / 16:19:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 smalltalkClassName:className 
@@ -64,12 +68,16 @@
 !
 
 smalltalkClassNameWithNamespace
-    ^ self smalltalkNamespace isNilOrEmptyCollection 
+
+    self smalltalkClassName isNil ifTrue:[^nil].
+
+    ^ self smalltalkNamespace isEmptyOrNil 
         ifTrue:[ self smalltalkClassName asSymbol ]
         ifFalse:[ (self smalltalkNamespace , '::' , self smalltalkClassName) asSymbol ]
 
     "Created: / 03-07-2008 / 20:29:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 09-09-2008 / 20:16:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 18-07-2011 / 16:17:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 smalltalkNamespace
--- a/Cface__CFunctionTypeNode.st	Tue Jul 12 15:38:42 2011 +0000
+++ b/Cface__CFunctionTypeNode.st	Mon Jul 18 15:31:42 2011 +0000
@@ -34,7 +34,9 @@
 ffiTypeSymbol
     "superclass Cface::CTypeNode says that I am responsible to implement this method"
 
-    ^ self shouldImplement
+    ^ #pointer
+
+    "Modified: / 18-07-2011 / 16:16:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 return
--- a/Cface__CPointerNode.st	Tue Jul 12 15:38:42 2011 +0000
+++ b/Cface__CPointerNode.st	Mon Jul 18 15:31:42 2011 +0000
@@ -56,8 +56,11 @@
 
 ffiTypeSymbol
 
+    | clsName |
+
     ^type isCStructuredNode ifTrue:[
-        type smalltalkClassNameWithNamespace
+        clsName := type smalltalkClassNameWithNamespace.
+        clsName isNil ifTrue:[#pointer] ifFalse:[clsName].
     ] ifFalse:[
         (type ffiTypeSymbol , 'Pointer') asSymbol
     ]