From 5add781e3270363a11dedbdaf43b270c6b790b56 Mon Sep 17 00:00:00 2001 From: zwiterrion Date: Mon, 20 May 2024 22:28:58 +0200 Subject: [PATCH] fix special case --- .../java/org/extism/sdk/HostFunction.java | 11 +- .../main/java/org/extism/sdk/LibExtism.java | 4 - .../test/java/org/extism/sdk/PluginTests.java | 301 ++++++++++++------ .../java/org/extism/sdk/TestWasmSources.java | 2 +- java/src/test/resources/httpwasm/redact.wasm | Bin 0 -> 7985 bytes java/src/test/resources/httpwasm/test.wasm | Bin 0 -> 149 bytes runtime/src/current_plugin.rs | 4 +- runtime/src/sdk.rs | 4 +- 8 files changed, 226 insertions(+), 100 deletions(-) create mode 100644 java/src/test/resources/httpwasm/redact.wasm create mode 100644 java/src/test/resources/httpwasm/test.wasm diff --git a/java/src/main/java/org/extism/sdk/HostFunction.java b/java/src/main/java/org/extism/sdk/HostFunction.java index 40c7b96f..fe9ed021 100644 --- a/java/src/main/java/org/extism/sdk/HostFunction.java +++ b/java/src/main/java/org/extism/sdk/HostFunction.java @@ -36,7 +36,10 @@ public HostFunction(String name, LibExtism.ExtismValType[] params, LibExtism.Ext int nOutputs, Pointer data) -> { - LibExtism.ExtismVal[] outputs = (LibExtism.ExtismVal []) outs.toArray(nOutputs); + LibExtism.ExtismVal[] outputs = null; + + if(outs != null) + outputs = (LibExtism.ExtismVal []) outs.toArray(nOutputs); f.invoke( new ExtismCurrentPlugin(currentPlugin), @@ -45,8 +48,10 @@ public HostFunction(String name, LibExtism.ExtismValType[] params, LibExtism.Ext userData ); - for (LibExtism.ExtismVal output : outputs) { - convertOutput(output, output); + if(outputs != null) { + for (LibExtism.ExtismVal output : outputs) { + convertOutput(output, output); + } } }; diff --git a/java/src/main/java/org/extism/sdk/LibExtism.java b/java/src/main/java/org/extism/sdk/LibExtism.java index b17141e7..a4dff9b0 100644 --- a/java/src/main/java/org/extism/sdk/LibExtism.java +++ b/java/src/main/java/org/extism/sdk/LibExtism.java @@ -37,10 +37,6 @@ public ByReference(Pointer ptr) { public ByReference() {} } -// public static class ByValue extends ExtismVal implements Structure.ByValue { -// -// } - public ExtismVal() {} public ExtismVal(Pointer p) { diff --git a/java/src/test/java/org/extism/sdk/PluginTests.java b/java/src/test/java/org/extism/sdk/PluginTests.java index fd48da53..da087340 100644 --- a/java/src/test/java/org/extism/sdk/PluginTests.java +++ b/java/src/test/java/org/extism/sdk/PluginTests.java @@ -199,113 +199,236 @@ public void shouldHttpWasmWorking() { var getUriReturns = new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}; ExtismFunction getUriFunction = (plugin, params, returns, data) -> { - System.out.println(params[0]); - String foo = "/foo"; +// System.out.println(params[0]); + String foo = "/host"; System.out.println("get_uri"); - - var memory = plugin.memory(); +// + var memory = plugin.customMemoryGet(); memory.write(params[0].v.i32, foo.getBytes(StandardCharsets.UTF_8), 0, foo.length()); - System.out.println(new String(memory.getByteArray(params[0].v.i32, 4))); - returns[0].v.i32 = foo.length(); + +// this.values[length].t = 0; +// this.values[length].v.setType(java.lang.Integer.TYPE); +// this.values[length].v.i32 = value; + System.out.println("ending get_uri"); }; var functions = new HostFunction[]{ - new HostFunction<>( - "log_enabled", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, - (plugin, params, returns, data) -> { - System.out.println("log_enabled"); - -// returns[0].v.i32 = 0; - // We expect debug logging to be disabled. Panic otherwise! - if (params[0].v.i32 != -1) { - returns[0].v.i32 = 1; - } else { - returns[0].v.i32 = 0; - } - System.out.println("Ending log_enabled"); - }, Optional.empty() - ).withNamespace("http_handler"), - - new HostFunction<>( - "log", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{}, - (plugin, params, returns, data) -> { - System.out.println("LOGGING at : " + params[0].v.i32); - - - }, Optional.empty() - ).withNamespace("http_handler"), - - new HostFunction<>( - "get_config", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, - (plugin, params, returns, data) -> { - System.out.println("get_config"); - - var offset = params[0].v.i32; - var limit = params[1].v.i32; - -// val vLen = v.length -// if (vLen > limit || vLen == 0) { -// return vLen +// new HostFunction<>( +// "log_enabled", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("log_enabled"); +// +//// returns[0].v.i32 = 0; +// // We expect debug logging to be disabled. Panic otherwise! +// if (params[0].v.i32 != -1) { +// returns[0].v.i32 = 1; +// } else { +// returns[0].v.i32 = 0; // } - -// var memory = plugin.customMemoryGet(); -// memory.write(offset, v.toArray, 0, vLen); - - returns[0].v.i32 = 8; - - }, Optional.empty() - ).withNamespace("http_handler"), - new HostFunction<>( - "enable_features", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, - (plugin, params, returns, data) -> { - System.out.println("enable_features"); - - returns[0].v.i32 = 0; - - }, Optional.empty() - ).withNamespace("http_handler"), - new HostFunction<>( - "get_uri", - getUriParamaters, - getUriReturns, - getUriFunction, Optional.empty() - ).withNamespace("http_handler"), +// System.out.println("Ending log_enabled"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// +// new HostFunction<>( +// "log", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("LOGGING at : " + params[0].v.i32); +// +// +// }, Optional.empty() +// ).withNamespace("http_handler"), +// +// new HostFunction<>( +// "get_config", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("get_config"); +// +// var offset = params[0].v.i32; +// var limit = params[1].v.i32; +// +//// val vLen = v.length +//// if (vLen > limit || vLen == 0) { +//// return vLen +//// } +// +//// var memory = plugin.customMemoryGet(); +//// memory.write(offset, v.toArray, 0, vLen); +// +// returns[0].v.i32 = 8; +// +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "enable_features", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("enable_features"); +// +// returns[0].v.i32 = 1; +// +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_uri", +// getUriParamaters, +// getUriReturns, +// getUriFunction, Optional.empty() +// ).withNamespace("http_handler"), new HostFunction<>( "set_uri", new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, new LibExtism.ExtismValType[]{}, - (plugin, params, returns, data) -> System.out.println("set_uri"), Optional.empty() - ).withNamespace("http_handler"), - new HostFunction<>( - "set_header_value", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{}, - (plugin, params, returns, data) -> System.out.println("set_header_value"), Optional.empty() + (plugin, params, returns, data) -> { + System.out.println("set_uri coucou"); + System.out.println("Ending set_uri"); + }, Optional.empty() ).withNamespace("http_handler"), - new HostFunction<>( - "write_body", - new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, - new LibExtism.ExtismValType[]{}, - (plugin, params, returns, data) -> System.out.println("write_body"), Optional.empty() - ).withNamespace("http_handler") +// new HostFunction<>( +// "set_header_value", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> System.out.println("set_header_value"), Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "write_body", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> System.out.println("write_body"), Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "read_body", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I64}, +// (plugin, params, returns, data) -> { +// System.out.println("read_body"); +// +//// returns[0].v.i64 = 1 << 32 | 10; +// returns[0].v.i64 = 1<<32|0; +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_method", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I64}, +// (plugin, params, returns, data) -> { +// System.out.println("get_method"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "set_method", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("set_method"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_protocol_version", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("get_protocol_version"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_header_names", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("get_header_names"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_header_values", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("get_header_values"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "add_header_value", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("add_header_value"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "remove_header", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32,LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("remove_header"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "set_status_code", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("set_status_code"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_source_addr", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("get_source_addr"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_method", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32}, +// (plugin, params, returns, data) -> { +// System.out.println("get_method"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_header_names", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I64}, +// (plugin, params, returns, data) -> { +// System.out.println("get_header_names"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "get_header_values", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I64}, +// (plugin, params, returns, data) -> { +// System.out.println("get_header_values"); +// }, Optional.empty() +// ).withNamespace("http_handler"), +// new HostFunction<>( +// "add_header_value", +// new LibExtism.ExtismValType[]{LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32, LibExtism.ExtismValType.I32}, +// new LibExtism.ExtismValType[]{}, +// (plugin, params, returns, data) -> { +// System.out.println("add_header_value"); +// }, Optional.empty() +// ).withNamespace("http_handler") }; + Manifest manifest = new Manifest(Arrays.asList(CODE.getLog()), new MemoryOptions(20)); + + var plugin = new Plugin(manifest, true, functions); - Manifest manifest = new Manifest(Arrays.asList(CODE.getLog())); + var res = plugin.call("handle_request", new Parameters(0), 1); - var plugin = new Plugin(manifest, false, functions); - System.out.println(plugin.callWithoutParams("handle_request", 1)); + System.out.println(res.getValue(0)); // System.out.println(plugin.callWithoutParams("handle_response", 1)); diff --git a/java/src/test/java/org/extism/sdk/TestWasmSources.java b/java/src/test/java/org/extism/sdk/TestWasmSources.java index b5f68f3f..839bc337 100644 --- a/java/src/test/java/org/extism/sdk/TestWasmSources.java +++ b/java/src/test/java/org/extism/sdk/TestWasmSources.java @@ -38,7 +38,7 @@ public Path getWasmWaf() { } public Path getLogPath() { - return Paths.get(WASM_LOCATION, "httpwasm/router.wasm"); + return Paths.get(WASM_LOCATION, "httpwasm/test.wasm"); } }; diff --git a/java/src/test/resources/httpwasm/redact.wasm b/java/src/test/resources/httpwasm/redact.wasm new file mode 100644 index 0000000000000000000000000000000000000000..da96de20795f8f18bdecbe2c9e7251ba178328da GIT binary patch literal 7985 zcmb_hU2I&(b)K2~vp;v2ypm;^5ov37%_LN9{#vGFL8v)OB+5}8rM6qNXaH(OUXlC5 z-PP_TZJ|ae%R-=_elY67Re(I?AqDc_0tT8EMv(^x=tF@1rGO0>g&*=@phb}uE?^)= zpd$UgnR{11c2K}IiMw-W?wK=Z&iT%nGc%$w+?GNJd8Tr~-@~8WyP)>=#07~5FQ^Ju zP=@@>PeE3CwkGh&_7oR{{FeF?8C15?w7<61=x%h9L18mV*LDU?;oaRl%$nt0%`uy| zlEy|dSlexMb`nvz>wEe6K{HL(F7`IAh~mNL8^h+>u-oVlw|ePXe~|1pljj$Ump0Zc znGoK?bs>D|OBKjKm6Y`TAdt#a%JY2TmBT2M$`52;20`FSp~51jYOY@Oqrx8+!|i0d zH@KoixZUVWXYs0iLNX0{AZr*Ey z*BvI}i>0y@Mn?X0JqRn(EC2e@`fp3MXGG0Yd)|sx`1j6KnO=(!BQ1fBM%icC;FrAN}pE5B_*qQ(z{IfA+M$qQwk)s#Zo+ zS0>&CWlfQwU6WcEzf}_z8AWQv{o{*lk9kT8FVbRGpi2r4HDznk6!V(mS21EO%*3u1 zU=7itNSK#i^3DFZD5Cp?dFQHc4#s87NXBJTjw3;e*K&$kPQyN5o2*GnPszbNj;u6R zPN>1k8EsN&Z@lc!C{dT@m*Q!Eg;i3v>S|e$(VH*(EiF!9?!x?9UN+@bH2zYoUWQK0 zt!us}oss6_Yd(J8yY9#SAu=%n?a_D?7ew^mzAWr%!5%-m?vF?2t?NFYBObW^<%`EW zVctdy9<-d2Y`|#aE#vRj0`taoE1+NVyiBobMSI#`#ne#Ju|SD>>`cA*KAJkB}~;%sQ>`d02Q|)p%oDHHmq5tPe7!C9ReVR zr%R}hs<p z9ugS~G{USfDPF8Wca3*B`Ynuq7eO8Br`^4rEVp}fR(g9+iWOn@R_k!rCq)gcty9(@ zCfrdVZqUgb8fqdwFyaiAiuSFtfX!s|pGp?@fcKSF-JeF3gRn-JlT;a)(48@Syx&-F zfpQQjzGhV}+i?H!b5#X87$9v?R~{5!6V|OVbK7VpB%CWVI~79H)Iv1)X+3~2gn(-d za)ApT4WMd*;Go7aAqy220l}2hyg0b zAn^Q~h~|_3=P-w(|5CDimsTcPrvz6P$sz{Ba9R1en(T{~PDehAdxSR-9`R#h7mfif zPSy&B(^Rpp0j2aN>W50RYElTD2u+^-Z53^OOOT2jtQJm)0lEr;Th%)k)ipJa@;{yz%t2+3A4 zZJH)0!Bovhue%r){k@VUs%N2{#e1D0+&43b{8WoitWO|p6)?|S@u9PwDO%0>8n7yI zg+L_M7LW+Xw{c#gNJYA&$%DSK{x_BGwN+a}vH;ux42rh}#-l7yj z0;inDj6*H8NYaQo?+Ce=Gln$_3|w%T)o96*Ia)iN7Gwr4%$`B&Ix7y;1y^i@g~R72 zwY=PEMc=K+3ibc0$_;RASv_jG!U^A(bih2o)W;!EruP}@-2xR$99|szz&v=4Ya^sL zp$^igsTUWjta_%2-W8`FU57nS=BmP6j^`?b+K#$+*na_U=roN2^cn?7r%-?@HxIl9 z4Hy;5ub7XJ#p40|5#|c1_J$01yRIy`y3-uk6EtAYsXoWGKVg;=|b%fYJgJnjK#y7gVO}81v7hE^#>mqHK4xSNM@)mdK%IeGrDX zh$3?Eenk1lKw{r2$It_Ba4@3BQclpm6YhPANJp@C;{(3hy-&LUVU2c^BB9IoSc3ff zEJ6AMmVnp~Sz=x`xV@28tUJ9aX(yWkQF1$XB&3kMhTRxNWJmEL0)k2NL4g4tGZ7 zv1Rp(Y`7`n=tHR^7niGWlrbGaU0DuN<_gJR`y1mjbomkHp9SmCF4XsUSX{xT06<|N zln9j!Gf?L(%7F3)cPS`8wsq!E;CYpe1@@`bL;3}0cU_@L>d<-wSL$3ecvA_PxwAbM zB8|JAq=t*|AGgkE5ov|pI2%q0dduD~#o-ETxUr1JLEx3F3u zOBYyl#3^;`b}}RF(!hO@^AV&LF}oVY8`-_BRUue@R zm%xh0Ri%a;aZwaOY;$w(l>YX0q#j7z{szZ+T(z)EbV=1rmNh7>hAu-^=6L?b28{#> z>YU2+hk_Lrxv&)$N`|+pJuYZ!5Bb&y*L;R5^l8Okg5sDr(jUME`ef`wdV9@Zh2JrI zBMlG$o1-`oVK0dtBo-~ZK!zqbYqJgC#c~s1cL*(i{1P^078otm5L2lmUBr()*F#g= z1W#cji2%ovMH|NhfeE zmbam+xmAXdxaW;L?E7C=ILLF@k-)Ik2DgMU4;mJj?^rGj_7JA%gmZZ&&1pXRHqPMU z7zZ(Me8f%eCcyt{jFU%*rYJQ-zm<~vP}H#hVSz};?poQ{V!LI#SN6h8XF!MIQCCd6 zLL)4wSnwb?UxJVnVSzGCKL9!E#1_Ctww)pRj-msK<24+`Q7u-rPz4o=xMB639|gcf z(O-F~174=#0&v(cMgjo#uLSSIcHI z-P*Z0x8B>H=Uu}rE&}d&o89Ee`)u0mUfJx;XZH}C!N2195OThU$9(vbAH6K!MbrDJ z&TsXG=~sG~Y&V^K?n*yNlNZwYey7pwZY4PU|CK0;4Jj?{Uw}U2I>(Wp$&UJeB?8g; zjWpTmKgN3(ye2^RF6d99WXc*X&VT=R`){Jgzi%ojesayd`>0p&xS9|i3GnBO8zsNn z*iPg>6~8RbeFl}xTibRUo%!Z=zc)ySbGWPdy=R`1pAR!!<$#%b_H&U8%+A_tq2K4N zkoWb^g{i$II)%F=KhCf@m){))qZS|;_HA^+v7BbBG2D7=sc>Ij@AP`@o&Gn7_2R+2 zF)MAWNlW|lb_-_PS{^az4`7L5ir>v>JSXh$r0ZLaL8Y2E*qf&6zP!5K7_^`1_0r+k z12cKs=K3kzQ?-xG;W8>s#t(h+1ACo;i^rq+Z4P?RL$&>VBhL0F>uC_~{}cu=#It06 z--rSH*v{v`L%A5Z9$Vk(fQWp}#>OBS4wK>ipTg}Dyq$JEm|d|wFp=}1lD8ZEQ_XH; zaOK$~ov?RrU-6?$HR-^WCr7qh>(fkAp}WC*Fu%ZiD7(KqJhD?ZJ~(TA zFXx^0c9L>lXL^IPkh6AgFUVUz@fjdG*X%aa>BWcdxkQ}azl}IF=VDG4ZN7N#z2cY7 z&U}^;?+9Q=<}h2hY+=6?<7>RoTyL*sD?n+=6NR}!Z=;bmWGQ=@TU5auTf|LS>f__i zdNLTQVh2%sr?Htx?<-F{Au9N?P6TYsUc91$b$&aDQToT;Osv#zP*z+E_RaH%}(!PqceQu mzAhsFpwaKc17|PwQ?7cCL>G5D?OC^wJyIMtH@mY~6aE*Z&>L|8 literal 0 HcmV?d00001 diff --git a/java/src/test/resources/httpwasm/test.wasm b/java/src/test/resources/httpwasm/test.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e684820dc37c770cd39d3be66f0573ccd0a34b0d GIT binary patch literal 149 zcmXxcO$x#=5XJE~)7n5i z1L(sS>c*5-H~RT8iJB b&prrDqf1VrWC?$h&kROYbTTDwl9})Yt?VI- literal 0 HcmV?d00001 diff --git a/runtime/src/current_plugin.rs b/runtime/src/current_plugin.rs index 30df2621..84f772ed 100644 --- a/runtime/src/current_plugin.rs +++ b/runtime/src/current_plugin.rs @@ -42,7 +42,7 @@ impl wasmtime::ResourceLimiter for MemoryLimiter { maximum: Option, ) -> Result { if let Some(max) = maximum { - if desired >= max { + if desired > max { // TODO - >= failed comparing 65536 and 65536 value return Err(Error::msg("oom")); } } @@ -346,6 +346,8 @@ impl CurrentPlugin { return mem.data_ptr(store); } + // let (linker, mut store) = self.linker_and_store(); + std::ptr::null_mut() } diff --git a/runtime/src/sdk.rs b/runtime/src/sdk.rs index 6e895e31..82709937 100644 --- a/runtime/src/sdk.rs +++ b/runtime/src/sdk.rs @@ -1,6 +1,6 @@ #![allow(clippy::missing_safety_doc)] -use std::os::raw::c_char; +use std::{os::raw::c_char, ptr::null_mut}; use crate::*; @@ -221,7 +221,7 @@ pub unsafe extern "C" fn extism_function_new( plugin, inputs.as_ptr(), inputs.len() as Size, - output_tmp.as_mut_ptr(), + if output_types.is_empty() { null_mut() } else { output_tmp.as_mut_ptr()}, output_tmp.len() as Size, user_data.as_ptr(), );