File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed
Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -94,22 +94,27 @@ provide let argv = () => {
9494 }
9595
9696 let argc = WasmI32.load(argcPtr, 0n)
97+ Memory.free(argcPtr)
98+
99+ let argsLength = argc * 4n
100+ let arr = allocateArray(argc)
101+
102+ if (WasmI32.eqz(argsLength)) {
103+ return Ok(WasmI32.toGrain(arr): Array<String>)
104+ }
105+
97106 let argvBufSize = WasmI32.load(argvBufSizePtr, 0n)
98107
99108 let argvPtr = Memory.malloc(argc * 4n)
100109 let argvBufPtr = Memory.malloc(argvBufSize)
101110
102111 let err = Wasi.args_get(argvPtr, argvBufPtr)
103112 if (err != Wasi._ESUCCESS) {
104- Memory.free(argcPtr)
105113 Memory.free(argvPtr)
106114 Memory.free(argvBufPtr)
107115 return Err(Wasi.SystemError(tagSimpleNumber(err)))
108116 }
109117
110- let arr = allocateArray(argc)
111-
112- let argsLength = argc * 4n
113118 for (let mut i = 0n; i < argsLength; i += 4n) {
114119 let strPtr = WasmI32.load(argvPtr + i, 0n)
115120 let mut strLength = 0n
@@ -123,7 +128,6 @@ provide let argv = () => {
123128 WasmI32.store(arr + i, grainStrPtr, 8n)
124129 }
125130
126- Memory.free(argcPtr)
127131 Memory.free(argvPtr)
128132 Memory.free(argvBufPtr)
129133
You can’t perform that action at this time.
0 commit comments