diff --git a/src/gen/generate.js b/src/gen/generate.js index d9c26055572cd15a66fb65fced5b3b009d466483..267701d004bafd74ca72bd447ec1db72a5a2758e 100644 --- a/src/gen/generate.js +++ b/src/gen/generate.js @@ -46,6 +46,10 @@ let moduleCppTmplete = `\ dest = pxt->SwapJs2CDouble(napi_v); \\ } +#define BOOLEAN_JS_2_C(napi_v, type, dest){ \\ + dest = pxt->SwapC2JsBool(napi_v); \\ +} \\ + static napi_value number_c_to_js(XNapiTool *pxt, const std::type_info &n, void *num) { if (n == typeid(int32_t)) diff --git a/src/gen/generate/param_generate.js b/src/gen/generate/param_generate.js index 9d9afdce1066b68109dcddd1d144e15a200d99bc..1059a895b74efa0e398de8c90e0163545e64a4bd 100644 --- a/src/gen/generate/param_generate.js +++ b/src/gen/generate/param_generate.js @@ -66,7 +66,7 @@ function jsToC(dest, napiVn, type) { return arrTemplete(dest, napiVn, type); } else if (type == "boolean") { - return "pxt->SwapC2JsBool(%s);".format(napiVn) + return `BOOLEAN_JS_2_C(%s,%s,%s);`.format(napiVn, "bool", dest) } else diff --git a/src/generator/src/com/sk/dialog/GenerateDialog.java b/src/generator/src/com/sk/dialog/GenerateDialog.java index be26127bafc95240c9db4a74478af1613019bc5a..1fabf99a4c775074d6d02687d7c0aa93b70b3929 100644 --- a/src/generator/src/com/sk/dialog/GenerateDialog.java +++ b/src/generator/src/com/sk/dialog/GenerateDialog.java @@ -171,32 +171,23 @@ public class GenerateDialog extends JDialog { } private void runFun(String destPath, String parentPath) { - InputStream inputStream; String sysName = System.getProperties().getProperty("os.name").toUpperCase(); - + String executeProgram; if (sysName.indexOf("WIN") >= 0) { - inputStream = getClass().getClassLoader().getResourceAsStream("cmds/win/napi_generator-win.exe"); + executeProgram = "cmds/win/napi_generator-win.exe"; } else if (sysName.indexOf("LINUX") >= 0) { - inputStream = getClass().getClassLoader().getResourceAsStream("cmds/linux/napi_generator-linux"); + executeProgram = "cmds/linux/napi_generator-linux"; } else { - inputStream = getClass().getClassLoader().getResourceAsStream("cmds/linux/napi_generator-mac"); + executeProgram = "cmds/linux/napi_generator-mac"; } - String command = genCommand(inputStream, destPath, parentPath); - try { + try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream(executeProgram)) { + String command = genCommand(inputStream, destPath, parentPath); callExtProcess(command); } catch (IOException ioException) { LOG.error("exec command error" + ioException); } catch (InterruptedException exception) { LOG.warn("exec command Interrupted" + exception); Thread.currentThread().interrupt(); - } finally { - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException ioException) { - LOG.error("exec command close inputStream error" + ioException); - } - } } }