]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix bugs in previous commit
authorRuss Cox <rsc@golang.org>
Wed, 14 Jan 2015 20:48:32 +0000 (15:48 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 14 Jan 2015 20:50:35 +0000 (20:50 +0000)
These were fixed in my local commit,
but I forgot that the web Submit button can't see that.

Change-Id: Iec3a70ce3ccd9db2a5394ae2da0b293e45ac2fb5
Reviewed-on: https://go-review.googlesource.com/2822
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/malloc.go

index eb895a95ae794342b1a06c49e32c194cd303a374..90cf7360fc240d3372cf9df27a888c7ec4ea5a4c 100644 (file)
@@ -128,7 +128,7 @@ func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer {
                        } else if size&1 == 0 {
                                off = round(off, 2)
                        }
-                       if off+size <= maxTinySize {
+                       if off+size <= maxTinySize && c.tiny != nil {
                                // The object fits into existing tiny block.
                                x = add(c.tiny, off)
                                c.tinyoffset = off + size
@@ -1042,7 +1042,7 @@ func persistentalloc(size, align uintptr, stat *uint64) unsafe.Pointer {
 
        lock(&persistent.lock)
        persistent.off = round(persistent.off, align)
-       if persistent.off+size > chunk {
+       if persistent.off+size > chunk || persistent.base == nil {
                persistent.base = sysAlloc(chunk, &memstats.other_sys)
                if persistent.base == nil {
                        unlock(&persistent.lock)