Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti2011-08-24 19:45:29 +0000
committerFelipe Heidrich2011-08-24 19:45:29 +0000
commit2f42a694a040beadb46715d86b45bb678c89d78c (patch)
tree406d299de7df3df8b67570d9c113d8e33a828a7d /bundles/org.eclipse.swt.tools
parent35d457460fd1a9087e8ef21709ae071073770ebb (diff)
downloadeclipse.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.java19
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 ");

Back to the top