From 51aba3703d26ddb7b9cd77e93c19dedf3a7e28cd Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Wed, 2 Oct 2024 10:36:21 -0700 Subject: [PATCH] example: fixes deallocate error in Rust (#2327) Signed-off-by: Takeshi Yoneda --- examples/allocation/rust/greet.go | 7 ++++++- examples/allocation/rust/testdata/greet.rs | 2 +- examples/allocation/rust/testdata/greet.wasm | Bin 63882 -> 9784 bytes 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/examples/allocation/rust/greet.go b/examples/allocation/rust/greet.go index 3d19eec3..e2d4b8f1 100644 --- a/examples/allocation/rust/greet.go +++ b/examples/allocation/rust/greet.go @@ -88,7 +88,12 @@ func main() { greetingSize := uint32(ptrSize[0]) // This pointer was allocated by Rust, but owned by Go, So, we have to // deallocate it when finished - defer deallocate.Call(ctx, uint64(greetingPtr), uint64(greetingSize)) + defer func() { + _, err = deallocate.Call(ctx, uint64(greetingPtr), uint64(greetingSize)) + if err != nil { + log.Panicln(err) + } + }() // The pointer is a linear memory offset, which is where we write the name. if bytes, ok := mod.Memory().Read(greetingPtr, greetingSize); !ok { diff --git a/examples/allocation/rust/testdata/greet.rs b/examples/allocation/rust/testdata/greet.rs index 962dbf1c..54b17558 100644 --- a/examples/allocation/rust/testdata/greet.rs +++ b/examples/allocation/rust/testdata/greet.rs @@ -101,7 +101,7 @@ pub extern "C" fn _allocate(size: u32) -> *mut u8 { /// Allocates size bytes and leaks the pointer where they start. fn allocate(size: usize) -> *mut u8 { // Allocate the amount of bytes needed. - let vec: Vec> = Vec::with_capacity(size); + let vec: Vec> = vec![MaybeUninit::uninit(); size]; // into_raw leaks the memory to the caller. Box::into_raw(vec.into_boxed_slice()) as *mut u8 diff --git a/examples/allocation/rust/testdata/greet.wasm b/examples/allocation/rust/testdata/greet.wasm index 28ca86a1e68e2b7b3bed53c4dd1c3c46fe5bbbd1..0fc12f754f7d1b7851d10dd459a47fce33db8151 100755 GIT binary patch literal 9784 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%0D%QdY6F!$88c`iC&Ep*SWfL8x>HjH zcT_)g_(WZJIAq1!)~V7bR%2}e5)pTLQV`B5JQyAX#f7F6N2DprAXa=tQ)Zk3QqWB) z|2@T>Vf+Md=HW<3%y?IgCX;k)dty$8W^dRXnB4)c;$gp^#*^-FVBYRdZkhdbU_N8+ zj=O)5Ub^&L_|>g$f_scI=CU#?GR7{BcE^+WVh~%lpLBe;lce>;jglbkG@_2@IStQ_ ze9!mnAZWYx#eTOvibnev#f$xm<57HZJQ=Nx#@9jbI_Uib$AdVg_us+w0*>4Gx?w)^ zj9Iy!;`_h_Gmf^SxI5W5hkNO$(;wc(nj_Fy!uceRQFObtm&V}pA6Ro9YaYgt!@+UT zzZe3giMjs5HmQH<((d5)DB50ma@_dr^NkWt!X~_7aULzwsmy8f`~| zZoG-F8Q}LUm;CN3jC~Gk^EhZf9R(aZ4onFwaS}91Un9F_|Nf9Rh_+H@EQoI;YXk)U z+lN+Jwe_{TTN#EGua@l>`*MdTVZTM&nw4 z*pB+kyLN3k8jBP0U0chhL-|!_I1-d=$6t29rJe+Cnsfr+gV?U;HC2yv6FcRvC#hRC zG1lsCZTGRS-Dt#?8`$+Asl{!_YHAzU=i5TM+iBX$cz-2L1^bT`ZbQhvwkEmAwE#f! z7L0;=qv1PtCyG5g=`?dUjs+a|yK!na1XB`Ba9Q4U+sgpcO$3x)JRIPg7D#nm$8kD! zH-fxLP^&ldHb@B@c|+lQRy}=X8&TNmL|wQfv5(p{yY8eN&q;%{mNW}DXYBpVwXMcW z(e2EHFE4*#ITSd%lhM9J0Uy+0c@T4J^~j2XB#Q9UiP}w_1dyuEh*_QPpgX?R+87OQ zV^8W>aSYaJ6t!b74VuOJ$vyV1Xpr>NRyrCDN7&>iZriTa(x~CMz8?k6h1yip#wvzXGx*ai*P3QIQ1cp{h8y^)Q>*!nC~}&gnfp$9W=Y`H zPB#$d$YI?<^4V)3JWB#~|3ngyaS9Wxtu@JZ)7ZBOLBsLfIIj6_ z+Yf@~S&B5r5loj~x=JziQN}{@-|LQ%)dcgp^rp7uH2lPIJC@go9AuS;Pez)|^2d=D z2R_`^vg?V{@tua%e8fE|EDTHuzLiLpkh<;%HUiX5>UPwK+qLGo1z`rU?)-BE8)}19 z8}E->@o;NvIB2w^cylsB8n(U6$MIpiHNG_*P4HDan*(XT(N3J2Z8h3%Ew$lrzxCCO z+%bBX6!w;4$uJz*L2G%}Z!e3VxIY~4j#6ABAJGper!@o{@@L}tsM}7h`MIZ0P_}Ew zdbFq|Xx$nPH%a55V@Dkn8sCAFc52N>zsa#X08`YEx!g;=Lo4n_<8eA(Tl;<7eSvO7 zj(u^6)VV)z(7BECE8tPKJxFi2Vif;YXEJgy}$( z#*CKbi>Q+FkJ3)JPsJmMBKW26Siaq^`9Zr`A@`WuC1bJG>5hecC3z- z)SM(}RBmC9FUP^RaKaSgJ!>%Qu6WGniUILw2 zj5@)I7@aAzw)Si^+K}}u!w;lE(|6sDjauDEW5;T^*FJ;$nsKjAF7`nP=K>}~X7qgH#j z+n;m?<2wF;$-@zE?^8I}BP3E3E`XH;^|X0`{=f-yg$Fo0-9jUPgx=c5W7Z@c6&E-w ztc`~B$4u-?#cf>e#_4FR=>2H0u^VlqTzd&U4=Z6RPLVg0)%HHmQ6i2Xx7LE%T5WZJ zG&AY%n=7;DF4L~r&T7qFwY(?Uh0_yC5^&lynjr6wm8VW`?M|Y0KV6l*?)WKv+}#+g Irmsx?54`u8WdHyG literal 63882 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