From e7d7971ce1cb9361f2d2131da3649f65e4433710 Mon Sep 17 00:00:00 2001 From: zach Date: Thu, 18 Jan 2024 10:50:32 -0800 Subject: [PATCH] fix: any non-zero error code counts as an error --- src/main/java/org/extism/sdk/LibExtism.java | 4 ++-- src/main/java/org/extism/sdk/Plugin.java | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/extism/sdk/LibExtism.java b/src/main/java/org/extism/sdk/LibExtism.java index 6bbecd4..8d3fb99 100644 --- a/src/main/java/org/extism/sdk/LibExtism.java +++ b/src/main/java/org/extism/sdk/LibExtism.java @@ -116,7 +116,7 @@ Pointer extism_function_new(String name, * @param nFunctions the number of host functions * @param withWASI enables/disables WASI * @param errmsg get the error message if the return value is null - * @return id of the plugin or {@literal -1} in case of error + * @return pointer to the plugin, or null in case of error */ Pointer extism_plugin_new(byte[] wasm, long wasmSize, Pointer[] functions, int nFunctions, boolean withWASI, Pointer[] errmsg); @@ -138,7 +138,7 @@ Pointer extism_function_new(String name, * @param function_name is the function to call * @param data is the data input data * @param dataLength is the data input data length - * @return the result code of the plugin call. {@literal -1} in case of error, {@literal 0} otherwise. + * @return the result code of the plugin call. non-zero in case of error, {@literal 0} otherwise. */ int extism_plugin_call(Pointer pluginPointer, String function_name, byte[] data, int dataLength); diff --git a/src/main/java/org/extism/sdk/Plugin.java b/src/main/java/org/extism/sdk/Plugin.java index 95426c1..70edda0 100644 --- a/src/main/java/org/extism/sdk/Plugin.java +++ b/src/main/java/org/extism/sdk/Plugin.java @@ -81,7 +81,7 @@ public byte[] call(String functionName, byte[] inputData) { int inputDataLength = inputData == null ? 0 : inputData.length; int exitCode = LibExtism.INSTANCE.extism_plugin_call(this.pluginPointer, functionName, inputData, inputDataLength); - if (exitCode == -1) { + if (exitCode != 0) { String error = this.error(); throw new ExtismException(error); } @@ -114,7 +114,11 @@ public String call(String functionName, String input) { * @return the error message */ protected String error() { - return LibExtism.INSTANCE.extism_plugin_error(this.pluginPointer); + String error = LibExtism.INSTANCE.extism_plugin_error(this.pluginPointer); + if (error == null){ + return new String("Unknown error encountered when running Extism plugin function"); + } + return error; } /**