runtime: add "end of heap" to detect out of memory

This can be used in the future to trigger garbage collection. For now,
it provides a more useful error message in case the heap is completely
filled up.
This commit is contained in:
Ayke van Laethem
2018-11-17 15:30:38 +01:00
parent ef93001ab8
commit 9181f2d4ce
5 changed files with 27 additions and 4 deletions
+3
View File
@@ -20,6 +20,9 @@ func alloc(size uintptr) unsafe.Pointer {
size = align(size)
addr := heapptr
heapptr += size
if heapptr >= heapEnd {
runtimePanic("out of memory")
}
for i := uintptr(0); i < uintptr(size); i += 4 {
ptr := (*uint32)(unsafe.Pointer(addr + i))
*ptr = 0