fix memory leak

This commit is contained in:
DieMyst 2019-04-10 19:28:34 +03:00
parent e6bfbccd61
commit 8cc66eb911
2 changed files with 9 additions and 2 deletions

View File

@ -22,7 +22,10 @@ export function readRequestBytes(ptr: i32, size: i32): Uint8Array {
*/
export function readRequestString(ptr: i32, size: i32): string {
let bb = readRequestBytes(ptr, size);
return String.fromUTF8(bb.buffer.data, bb.length);
let request = String.fromUTF8(bb.buffer.data, bb.length);
memory.free(changetype<usize>(bb.buffer));
memory.free(changetype<usize>(bb));
return request
}
/**
@ -75,7 +78,6 @@ export function writeResponseString(response: string): i32 {
store<u8>(strAddr + i, b);
}
memory.free(changetype<usize>(response));
return addr;
}
@ -92,6 +94,7 @@ export function stringHandler(ptr: i32, size: i32, handler: (request: string) =>
let responseAddr = writeResponseString(response);
memory.free(ptr);
memory.free(changetype<usize>(strRequest));
memory.free(changetype<usize>(response));
return responseAddr;
}
@ -113,6 +116,8 @@ export function loggedStringHandler(ptr: i32, size: i32, handler: (request: stri
log("Response: " + response);
memory.free(changetype<usize>(response));
return responseAddr;
}

View File

@ -9,5 +9,7 @@ export function log(message: string): void {
let b: u8 = messageStr.charCodeAt(i) as u8;
write(b);
}
memory.free(changetype<usize>(message));
memory.free(changetype<usize>(messageStr));
flush();
}