X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fnasal%2Fhash.c;h=3679a0ca7685134afc0f4e039019c095f14569e4;hb=e1abab393b69d052186d799fd6182369f4877214;hp=b7571c42058dc82e79a27e8ac7548170a7eeac4e;hpb=dd1ea541ecc4403bcea2ca8c60c03971d1f4338f;p=simgear.git diff --git a/simgear/nasal/hash.c b/simgear/nasal/hash.c index b7571c42..3679a0ca 100644 --- a/simgear/nasal/hash.c +++ b/simgear/nasal/hash.c @@ -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)