Fixed incorrect parameters for memory deallocation

This commit is contained in:
Eduard Urbach 2025-02-09 15:25:25 +01:00
parent ade1fd8fff
commit b1228be79a
Signed by: akyoto
GPG Key ID: C874F672B1AF20C0
4 changed files with 11 additions and 9 deletions

View File

@ -1,10 +1,4 @@
import mem
main() {
text := mem.alloc(4)
text[0] = 'H'
text[1] = 'i'
text[2] = '!'
user32.MessageBoxA(0, text, text, 0x00240040)
mem.free(text, 4)
text := "Hi!\0"
user32.MessageBoxA(0, text, text, 0x240040)
}

View File

@ -1,5 +1,5 @@
import sys
free(address Pointer, length Int) -> Int {
return sys.munmap(address, length)
return sys.munmap(address-8, length+8)
}

View File

@ -0,0 +1,7 @@
import mem
main() {
address := mem.alloc(1024)
err := mem.free(address, 1024)
assert err == 0
}

View File

@ -59,6 +59,7 @@ var programs = []struct {
{"switch", "", "", 0},
{"loop", "", "", 0},
{"loop-lifetime", "", "", 0},
{"memory-free", "", "", 0},
{"out-of-memory", "", "", 0},
{"struct", "", "", 0},
}