]> git.mxchange.org Git - simgear.git/blobdiff - simgear/nasal/hash.c
Fix for clang/template dependent name lookup.
[simgear.git] / simgear / nasal / hash.c
index b7571c42058dc82e79a27e8ac7548170a7eeac4e..3679a0ca7685134afc0f4e039019c095f14569e4 100644 (file)
@@ -98,7 +98,7 @@ static int recsize(int lgsz)
 {
     HashRec hr;
     hr.lgsz = lgsz;
-    return (int)((char*)&TAB(&hr)[POW2(lgsz+1)] - (char*)&hr);
+    return (int)((char*)&TAB(&hr)[POW2(lgsz+1)] - (char*)&hr) + sizeof(naRef);
 }
 
 static HashRec* resize(struct naHash* hash)
@@ -179,17 +179,18 @@ void naiGCMarkHash(naRef hash)
 static void tmpStr(naRef* out, struct naStr* str, const char* key)
 {
     str->type = T_STR;
-    str->hashcode = str->emblen = 0;
+    str->hashcode = 0;
+    str->emblen = -1;
     str->data.ref.ptr = (unsigned char*)key;
     str->data.ref.len = strlen(key);
     SETPTR(*out, str);
 }
 
-int naMember_cget(naRef obj, const char* field, naRef* out)
+int naMember_cget(naContext c, naRef obj, const char* field, naRef* out)
 {
     naRef key; struct naStr str;
     tmpStr(&key, &str, field);
-    return naMember_get(obj, key, out);
+    return naMember_get(c, obj, key, out);
 }
 
 naRef naHash_cget(naRef hash, char* key)