Skip to content

Commit 932a6cb

Browse files
committed
Actually free just after the call
1 parent c44744e commit 932a6cb

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

packages/duckdb-wasm/src/bindings/bindings_base.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,11 @@ export abstract class DuckDBBindingsBase implements DuckDBBindings {
139139
const bufferOfs = this.mod.HEAPU8.subarray(bufferPtr, bufferPtr + BUF.length );
140140
bufferOfs.set(BUF);
141141
const [s, d, n] = callSRet(this.mod, 'duckdb_web_tokenize_buffer', ['number', 'number'], [bufferPtr, BUF.length]);
142+
this.mod._free(bufferPtr);
142143
if (s !== StatusCode.SUCCESS) {
143-
this.mod._free(bufferPtr);
144144
throw new Error(readString(this.mod, d, n));
145145
}
146146
const res = readString(this.mod, d, n);
147-
this.mod._free(bufferPtr);
148147
dropResponseBuffers(this.mod);
149148
return JSON.parse(res) as ScriptTokens;
150149
}
@@ -174,13 +173,12 @@ export abstract class DuckDBBindingsBase implements DuckDBBindings {
174173
const bufferOfs = this.mod.HEAPU8.subarray(bufferPtr, bufferPtr + BUF.length);
175174
bufferOfs.set(BUF);
176175
const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_run_buffer', ['number', 'number', 'number'], [conn, bufferPtr, BUF.length]);
176+
this.mod._free(bufferPtr);
177177
if (s !== StatusCode.SUCCESS) {
178-
this.mod._free(bufferPtr);
179178
throw new Error(readString(this.mod, d, n));
180179
}
181180
const res = copyBuffer(this.mod, d, n);
182181
dropResponseBuffers(this.mod);
183-
this.mod._free(bufferPtr);
184182
return res;
185183
}
186184
/**
@@ -195,16 +193,14 @@ export abstract class DuckDBBindingsBase implements DuckDBBindings {
195193
const bufferOfs = this.mod.HEAPU8.subarray(bufferPtr, bufferPtr + BUF.length );
196194
bufferOfs.set(BUF);
197195
const [s, d, n] = callSRet(this.mod, 'duckdb_web_pending_query_start_buffer', ['number', 'number', 'number', 'boolean'], [conn, bufferPtr, BUF.length, allowStreamResult]);
196+
this.mod._free(bufferPtr);
198197
if (s !== StatusCode.SUCCESS) {
199-
this.mod._free(bufferPtr);
200198
throw new Error(readString(this.mod, d, n));
201199
}
202200
if (d == 0) {
203-
this.mod._free(bufferPtr);
204201
return null;
205202
}
206203
const res = copyBuffer(this.mod, d, n);
207-
this.mod._free(bufferPtr);
208204
dropResponseBuffers(this.mod);
209205
return res;
210206
}

0 commit comments

Comments
 (0)