X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fnasal%2Fbitslib.c;h=04071e3afc68a068725a508b366055ae6a6d9f57;hb=5f804cb0eb126ab7162855dad14d20eb381309c6;hp=e7f1f37435a1539e20c26f2b07d85da21fbff920;hpb=b05e32fa8c11e6d66bb70850751e170dc472a1a3;p=simgear.git diff --git a/simgear/nasal/bitslib.c b/simgear/nasal/bitslib.c index e7f1f374..04071e3a 100644 --- a/simgear/nasal/bitslib.c +++ b/simgear/nasal/bitslib.c @@ -16,7 +16,7 @@ static unsigned int fld(naContext c, unsigned char* s, int i; unsigned int fld = 0; if(bit + flen > 8*slen) naRuntimeError(c, "bitfield out of bounds"); - for(i=0; i 0 ? PTR(args[0]).str : 0; + naRef s = argc > 0 ? args[0] : naNil(); int bit = argc > 1 ? (int)naNumValue(args[1]).num : -1; int len = argc > 2 ? (int)naNumValue(args[2]).num : -1; unsigned int f; - if(!s || !MUTABLE(args[0]) || bit < 0 || len < 0) + if(!naIsString(s) || !MUTABLE(args[0]) || bit < 0 || len < 0) naRuntimeError(c, "missing/bad argument to fld/sfld"); - f = fld(c, s->data, s->len, bit, len); + f = fld(c, (void*)naStr_data(s), naStr_len(s), bit, len); if(!sign) return naNum(f); if(f & (1 << (len-1))) f |= ~((1< 0 ? PTR(args[0]).str : 0; + naRef s = argc > 0 ? args[0] : naNil(); int bit = argc > 1 ? (int)naNumValue(args[1]).num : -1; int len = argc > 2 ? (int)naNumValue(args[2]).num : -1; naRef val = argc > 3 ? naNumValue(args[3]) : naNil(); if(!argc || !MUTABLE(args[0])|| bit < 0 || len < 0 || IS_NIL(val)) naRuntimeError(c, "missing/bad argument to setfld"); - setfld(c, s->data, s->len, bit, len, (unsigned int)val.num); + setfld(c, (void*)naStr_data(s), naStr_len(s), bit, len, (unsigned int)val.num); return naNil(); }