From b57747abb0a6d500538c509fbd694a7f0fb31a30 Mon Sep 17 00:00:00 2001 From: Silenio Quarti Date: Thu, 19 Apr 2012 15:28:10 -0400 Subject: fix arg name when param name and param index is not available --- .../eclipse/swt/tools/internal/MacGenerator.java | 22 +++++++++++++++------- .../eclipse/swt/tools/internal/MacGeneratorUI.java | 18 ++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) (limited to 'bundles') 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 2f6c055eeb..06be58d50b 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 @@ -160,7 +160,7 @@ String fixDelimiter(String str) { return buffer.toString(); } -String getParamName(Node param) { +String getParamName(Node param, int i) { NamedNodeMap paramAttributes = param.getAttributes(); Node swtName = paramAttributes.getNamedItem("swt_param_name"); String paramName = ""; @@ -173,7 +173,11 @@ String getParamName(Node param) { if (paramName.length() == 0) { Node node = paramAttributes.getNamedItem("index"); String index = "0"; - if (node != null) index = node.getNodeValue(); + if (node != null) { + index = node.getNodeValue(); + } else { + index = String.valueOf(i); + } paramName = "arg" + index; } if (paramName.equals("boolean")) paramName = "b"; @@ -216,6 +220,7 @@ void generateMethods(String className, ArrayList methods) { out("("); NodeList params = method.getChildNodes(); boolean first = true; + int argIndex = 0; for (int k = 0; k < params.getLength(); k++) { Node param = params.item(k); if ("arg".equals(param.getNodeName())) { @@ -229,7 +234,7 @@ void generateMethods(String className, ArrayList methods) { } first = false; out(" "); - out(getParamName(param)); + out(getParamName(param, argIndex++)); } } out(") {"); @@ -281,12 +286,13 @@ void generateMethods(String className, ArrayList methods) { out(", OS."); out(getSelConst(sel)); first = false; + argIndex = 0; for (int k = 0; k < params.getLength(); k++) { Node param = params.item(k); if ("arg".equals(param.getNodeName())) { if (!first) out(", "); first = false; - String paramName = getParamName(param); + String paramName = getParamName(param, argIndex++); if (isObject(param)) { out(paramName); out(" != null ? "); @@ -1066,7 +1072,7 @@ void generateSelectorsConst() { } } } - set.add("alloc"); + if (set.size() > 0) set.add("alloc"); for (Iterator iterator = set.iterator(); iterator.hasNext();) { String sel = (String) iterator.next(); String selConst = getSelConst(sel); @@ -1658,11 +1664,12 @@ void generateFunctions() { out("/**"); outln(); } + int argIndex = 0; for (int j = 0; j < params.getLength(); j++) { Node param = params.item(j); if ("arg".equals(param.getNodeName())) { out(" * @param "); - out(getParamName(param)); + out(getParamName(param, argIndex++)); if (isStruct(param)) { out(" flags=struct"); } else { @@ -1700,6 +1707,7 @@ void generateFunctions() { out("("); params = node.getChildNodes(); boolean first = true; + argIndex = 0; for (int j = 0; j < params.getLength(); j++) { Node param = params.item(j); if ("arg".equals(param.getNodeName())) { @@ -1713,7 +1721,7 @@ void generateFunctions() { out("*/"); } out(" "); - out(getParamName(param)); + out(getParamName(param, argIndex++)); } } generateVariadics(node); diff --git a/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGeneratorUI.java b/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGeneratorUI.java index eb4ef27bcb..ff491f361c 100644 --- a/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGeneratorUI.java +++ b/bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGeneratorUI.java @@ -595,18 +595,20 @@ public class MacGeneratorUI { } public static void main(String[] args) { -// args = new String[]{ -// "./Mac Generation/org/eclipse/swt/tools/internal/AppKitFull.bridgesupport", -// "./Mac Generation/org/eclipse/swt/tools/internal/FoundationFull.bridgesupport", -// "./Mac Generation/org/eclipse/swt/tools/internal/WebKitFull.bridgesupport", -// }; + String mainClass = args.length > 0 ? args[0] : "org.eclipse.swt.internal.cocoa.OS"; + String outputDir = args.length > 1 ? args[1] : "../org.eclipse.swt/Eclipse SWT PI/cocoa/"; + String[] xmls = {}; + if (args.length > 2) { + xmls = new String[args.length - 2]; + System.arraycopy(args, 2, xmls, 0, xmls.length); + } try { Display display = new Display(); Shell shell = new Shell(display); MacGenerator gen = new MacGenerator(); - gen.setXmls(args); - gen.setOutputDir("../org.eclipse.swt/Eclipse SWT PI/cocoa/"); - gen.setMainClass("org.eclipse.swt.internal.cocoa.OS"); + gen.setXmls(xmls); + gen.setOutputDir(outputDir); + gen.setMainClass(mainClass); MacGeneratorUI ui = new MacGeneratorUI(gen); ui.open(shell); shell.open(); -- cgit