diff options
author | Silenio Quarti <silenio> | 2008-09-11 15:37:06 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2008-09-11 15:37:06 +0000 |
commit | b2a7bd8c826aba183c570104382c1d0f35dd8698 (patch) | |
tree | 4269719932ce9e48dbb4294d93f1e986d77110fe /bundles/org.eclipse.swt.tools | |
parent | 2d914fcedcb0c63f85a01a949b658b18fdaca68c (diff) | |
download | eclipse.platform.swt-b2a7bd8c826aba183c570104382c1d0f35dd8698.tar.gz eclipse.platform.swt-b2a7bd8c826aba183c570104382c1d0f35dd8698.tar.xz eclipse.platform.swt-b2a7bd8c826aba183c570104382c1d0f35dd8698.zip |
Bug 211796 - Regenerate the PI ("Platform Interface") to better match cocoa (boolean return)
Diffstat (limited to 'bundles/org.eclipse.swt.tools')
2 files changed, 17 insertions, 13 deletions
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java index 4b3eab01f5..26bc402b87 100644 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java +++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java @@ -671,7 +671,11 @@ void generateFunctionCall(JNIMethod method, JNIParameter[] params, JNIType retur } if (method.getFlag(Flags.FLAG_CAST)) { output("(("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); + String returnCast = returnType.getTypeSignature2(!returnType.equals(returnType64)); + if (name.equals("objc_msgSend_bool") && returnCast.equals("jboolean")) { + returnCast = "BOOL"; + } + output(returnCast); output(" (*)("); for (int i = 0; i < params.length; i++) { if (i != 0) output(", "); diff --git a/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java b/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java index 94822fb37e..e13995c0b3 100644 --- a/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java +++ b/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java @@ -217,6 +217,9 @@ void generateMethods(String className, ArrayList methods) { out("();"); outln(); out("\tOS.objc_msgSend_stret(result, "); + } else if (returnNode != null && isBoolean(returnNode)) { + out("\treturn "); + out("OS.objc_msgSend_bool("); } else if (returnNode != null && isFloatingPoint(returnNode)) { out("\treturn "); if (returnType.equals("float")) out("(float)"); @@ -226,15 +229,13 @@ void generateMethods(String className, ArrayList methods) { } else { if (returnNode != null) { out("\treturn "); - if (!returnType.equals("boolean")) { - if ((returnType.equals("int") && returnType64.equals("int")) || !returnType.equals("int")) { - out("("); - out(returnType); - out(")"); - } - if (returnType.equals("int") && returnType64.equals("int")) { - out("/*64*/"); - } + if ((returnType.equals("int") && returnType64.equals("int")) || !returnType.equals("int")) { + out("("); + out(returnType); + out(")"); + } + if (returnType.equals("int") && returnType64.equals("int")) { + out("/*64*/"); } } else { out("\t"); @@ -270,9 +271,6 @@ void generateMethods(String className, ArrayList methods) { } } out(")"); - if (returnNode != null && isBoolean(returnNode)) { - out(" != 0"); - } out(";"); outln(); if (returnNode != null && isObject(returnNode)) { @@ -1030,6 +1028,8 @@ String buildSend(Node method, boolean tags, boolean only64) { buffer.append(" result, "); } else if (returnNode != null && isFloatingPoint(returnNode)) { buffer.append("double objc_msgSend_fpret("); + } else if (returnNode != null && isBoolean(returnNode)) { + buffer.append("boolean objc_msgSend_bool("); } else { if (only64) { buffer.append("long"); |