diff options
| author | Russ Cox <rsc@golang.org> | 2011-02-17 16:08:52 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-02-17 16:08:52 -0500 |
| commit | f2852ba618876639b2e85232d65edc9536c7ef7b (patch) | |
| tree | a403b19166f15b8d389765b1dd9c0080e4a6d4bd /src/pkg/runtime/hashmap.c | |
| parent | 712888910b2fd458c5e2ca50313f473476abe321 (diff) | |
| download | go-f2852ba618876639b2e85232d65edc9536c7ef7b.tar.xz | |
runtime: descriptive panics for use of nil map
R=r, r2
CC=golang-dev
https://golang.org/cl/4173060
Diffstat (limited to 'src/pkg/runtime/hashmap.c')
| -rw-r--r-- | src/pkg/runtime/hashmap.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/pkg/runtime/hashmap.c b/src/pkg/runtime/hashmap.c index f0d5ce90a7..e50cefd9ab 100644 --- a/src/pkg/runtime/hashmap.c +++ b/src/pkg/runtime/hashmap.c @@ -781,6 +781,9 @@ runtime·mapaccess(Hmap *h, byte *ak, byte *av, bool *pres) { byte *res; + if(h == nil) + runtime·panicstring("lookup in nil map"); + if(runtime·gcwaiting) runtime·gosched(); @@ -802,6 +805,9 @@ runtime·mapaccess1(Hmap *h, ...) byte *ak, *av; bool pres; + if(h == nil) + runtime·panicstring("lookup in nil map"); + ak = (byte*)&h + h->ko1; av = (byte*)&h + h->vo1; @@ -827,6 +833,9 @@ runtime·mapaccess2(Hmap *h, ...) { byte *ak, *av, *ap; + if(h == nil) + runtime·panicstring("lookup in nil map"); + ak = (byte*)&h + h->ko1; av = (byte*)&h + h->vo1; ap = (byte*)&h + h->po1; @@ -852,6 +861,9 @@ runtime·mapassign(Hmap *h, byte *ak, byte *av) byte *res; int32 hit; + if(h == nil) + runtime·panicstring("assignment to entry in nil map"); + if(runtime·gcwaiting) runtime·gosched(); @@ -889,6 +901,9 @@ runtime·mapassign1(Hmap *h, ...) { byte *ak, *av; + if(h == nil) + runtime·panicstring("assignment to entry in nil map"); + ak = (byte*)&h + h->ko2; av = (byte*)&h + h->vo2; @@ -902,6 +917,9 @@ runtime·mapassign2(Hmap *h, ...) { byte *ak, *av, *ap; + if(h == nil) + runtime·panicstring("assignment to entry in nil map"); + ak = (byte*)&h + h->ko2; av = (byte*)&h + h->vo2; ap = (byte*)&h + h->po2; |
