diff options
author | Silenio Quarti <Silenio_Quarti@ca.ibm.com> | 2011-08-24 15:45:29 -0400 |
---|---|---|
committer | Felipe Heidrich <Felipe_Heidrich@ca.ibm.com> | 2011-08-24 15:45:29 -0400 |
commit | 2f42a694a040beadb46715d86b45bb678c89d78c (patch) | |
tree | 406d299de7df3df8b67570d9c113d8e33a828a7d /bundles/org.eclipse.swt.tools | |
parent | 35d457460fd1a9087e8ef21709ae071073770ebb (diff) | |
download | eclipse.platform.swt-2f42a694a040beadb46715d86b45bb678c89d78c.tar.gz eclipse.platform.swt-2f42a694a040beadb46715d86b45bb678c89d78c.tar.xz eclipse.platform.swt-2f42a694a040beadb46715d86b45bb678c89d78c.zip |
Bug 349812 - Rotate gesture not working on 64bit build
Diffstat (limited to 'bundles/org.eclipse.swt.tools')
-rw-r--r-- | bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java | 19 |
1 files changed, 15 insertions, 4 deletions
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 edfc94cc71..8e28e84345 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 @@ -235,8 +235,13 @@ void generateMethods(String className, ArrayList methods) { out("OS.objc_msgSend_bool("); } else if (returnNode != null && isFloatingPoint(returnNode)) { out("\treturn "); - if (returnType.equals("float")) out("(float)"); - out("OS.objc_msgSend_fpret("); + String type = getType(returnNode), type64 = getType64(returnNode); + if (type.equals(type64) && type.equals("float")) { + out("OS.objc_msgSend_floatret("); + } else { + if (returnType.equals("float")) out("(float /*double*/)"); + out("OS.objc_msgSend_fpret("); + } } else if (returnNode != null && isObject(returnNode)) { out("\tint /*long*/ result = OS.objc_msgSend("); } else { @@ -1099,8 +1104,14 @@ String buildSend(Node method, boolean tags, boolean only64, boolean superCall) { buffer.append(getJavaType(returnNode)); buffer.append(" result, "); } else if (returnNode != null && isFloatingPoint(returnNode)) { - buffer.append("double "); - buffer.append(superCall ? "objc_msgSendSuper_fpret" : "objc_msgSend_fpret"); + String type = getType(returnNode), type64 = getType64(returnNode); + if (type.equals(type64) && type.equals("float")) { + buffer.append("float "); + buffer.append(superCall ? "objc_msgSendSuper_floatret" : "objc_msgSend_floatret"); + } else { + buffer.append("double "); + buffer.append(superCall ? "objc_msgSendSuper_fpret" : "objc_msgSend_fpret"); + } buffer.append("("); } else if (returnNode != null && isBoolean(returnNode)) { buffer.append("boolean "); |