aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/hashmap.goc
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/hashmap.goc')
-rw-r--r--src/pkg/runtime/hashmap.goc12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pkg/runtime/hashmap.goc b/src/pkg/runtime/hashmap.goc
index 4f5e78897b..36707c6ede 100644
--- a/src/pkg/runtime/hashmap.goc
+++ b/src/pkg/runtime/hashmap.goc
@@ -908,11 +908,15 @@ func mapaccess2(t *MapType, h *Hmap, key *byte) (val *byte, pres bool) {
#pragma textflag NOSPLIT
func reflect·mapaccess(t *MapType, h *Hmap, key *byte) (val *byte) {
- if(raceenabled && h != nil) {
- runtime·racereadpc(h, runtime·getcallerpc(&t), reflect·mapaccess);
- runtime·racereadobjectpc(key, t->key, runtime·getcallerpc(&t), reflect·mapaccess);
+ if(h == nil)
+ val = nil;
+ else {
+ if(raceenabled) {
+ runtime·racereadpc(h, runtime·getcallerpc(&t), reflect·mapaccess);
+ runtime·racereadobjectpc(key, t->key, runtime·getcallerpc(&t), reflect·mapaccess);
+ }
+ val = hash_lookup(t, h, &key);
}
- val = hash_lookup(t, h, &key);
}
#pragma textflag NOSPLIT