summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt.tools
diff options
context:
space:
mode:
authorSilenio Quarti <silenio_quarti@ca.ibm.com>2012-03-05 14:25:10 -0500
committerSilenio Quarti <silenio_quarti@ca.ibm.com>2012-03-05 14:25:46 -0500
commit62b4be6e718faeb1484f3ad3d28cc76437da3d06 (patch)
treebd7c787690b410bc1909dceddce39a45c107237d /bundles/org.eclipse.swt.tools
parent781aae212f7b0db588797dc1fbd0399d4e30ce5e (diff)
downloadeclipse.platform.swt-62b4be6e718faeb1484f3ad3d28cc76437da3d06.tar.gz
eclipse.platform.swt-62b4be6e718faeb1484f3ad3d28cc76437da3d06.tar.xz
eclipse.platform.swt-62b4be6e718faeb1484f3ad3d28cc76437da3d06.zip
generate objc_msgSend_stret for iOS
Diffstat (limited to 'bundles/org.eclipse.swt.tools')
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java12
1 files changed, 8 insertions, 4 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 7791aa4a1c..8808d8f248 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
@@ -675,10 +675,10 @@ void generateFunctionCall(JNIMethod method, JNIParameter[] params, JNIType retur
boolean objc_struct = false;
if (name.equals("objc_msgSend_stret") || name.equals("objc_msgSendSuper_stret")) objc_struct = true;
if (objc_struct) {
- outputln("if (sizeof(_arg0) > STRUCT_SIZE_LIMIT) {");
- generate_objc_msgSend_stret (method, params, name);
- paramStart = 1;
- } else if (name.equalsIgnoreCase("call")) {
+ outputln("if (STRUCT_SIZE_LIMIT == 0) {");
+ output("\t\t");
+ }
+ if (name.equalsIgnoreCase("call")) {
output("(");
String cast = params[0].getCast();
if (cast.length() != 0 && !cast.equals("()")) {
@@ -850,6 +850,10 @@ void generateFunctionCall(JNIMethod method, JNIParameter[] params, JNIType retur
outputln("\t}");
}
if (objc_struct) {
+ outputln("\t} else if (sizeof(_arg0) > STRUCT_SIZE_LIMIT) {");
+ generate_objc_msgSend_stret (method, params, name);
+ generateFunctionCallRightSide(method, params, 1);
+ outputln(";");
outputln("\t} else {");
generate_objc_msgSend_stret (method, params, name.substring(0, name.length() - "_stret".length()));
generateFunctionCallRightSide(method, params, 1);