Commit f2852ba6 authored by Russ Cox's avatar Russ Cox

runtime: descriptive panics for use of nil map

R=r, r2
CC=golang-dev
https://golang.org/cl/4173060
parent 71288891
...@@ -781,6 +781,9 @@ runtime·mapaccess(Hmap *h, byte *ak, byte *av, bool *pres) ...@@ -781,6 +781,9 @@ runtime·mapaccess(Hmap *h, byte *ak, byte *av, bool *pres)
{ {
byte *res; byte *res;
if(h == nil)
runtime·panicstring("lookup in nil map");
if(runtime·gcwaiting) if(runtime·gcwaiting)
runtime·gosched(); runtime·gosched();
...@@ -802,6 +805,9 @@ runtime·mapaccess1(Hmap *h, ...) ...@@ -802,6 +805,9 @@ runtime·mapaccess1(Hmap *h, ...)
byte *ak, *av; byte *ak, *av;
bool pres; bool pres;
if(h == nil)
runtime·panicstring("lookup in nil map");
ak = (byte*)&h + h->ko1; ak = (byte*)&h + h->ko1;
av = (byte*)&h + h->vo1; av = (byte*)&h + h->vo1;
...@@ -827,6 +833,9 @@ runtime·mapaccess2(Hmap *h, ...) ...@@ -827,6 +833,9 @@ runtime·mapaccess2(Hmap *h, ...)
{ {
byte *ak, *av, *ap; byte *ak, *av, *ap;
if(h == nil)
runtime·panicstring("lookup in nil map");
ak = (byte*)&h + h->ko1; ak = (byte*)&h + h->ko1;
av = (byte*)&h + h->vo1; av = (byte*)&h + h->vo1;
ap = (byte*)&h + h->po1; ap = (byte*)&h + h->po1;
...@@ -852,6 +861,9 @@ runtime·mapassign(Hmap *h, byte *ak, byte *av) ...@@ -852,6 +861,9 @@ runtime·mapassign(Hmap *h, byte *ak, byte *av)
byte *res; byte *res;
int32 hit; int32 hit;
if(h == nil)
runtime·panicstring("assignment to entry in nil map");
if(runtime·gcwaiting) if(runtime·gcwaiting)
runtime·gosched(); runtime·gosched();
...@@ -889,6 +901,9 @@ runtime·mapassign1(Hmap *h, ...) ...@@ -889,6 +901,9 @@ runtime·mapassign1(Hmap *h, ...)
{ {
byte *ak, *av; byte *ak, *av;
if(h == nil)
runtime·panicstring("assignment to entry in nil map");
ak = (byte*)&h + h->ko2; ak = (byte*)&h + h->ko2;
av = (byte*)&h + h->vo2; av = (byte*)&h + h->vo2;
...@@ -902,6 +917,9 @@ runtime·mapassign2(Hmap *h, ...) ...@@ -902,6 +917,9 @@ runtime·mapassign2(Hmap *h, ...)
{ {
byte *ak, *av, *ap; byte *ak, *av, *ap;
if(h == nil)
runtime·panicstring("assignment to entry in nil map");
ak = (byte*)&h + h->ko2; ak = (byte*)&h + h->ko2;
av = (byte*)&h + h->vo2; av = (byte*)&h + h->vo2;
ap = (byte*)&h + h->po2; ap = (byte*)&h + h->po2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment