X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScripting%2Fnasal-props.cxx;h=1a16f8f918b4c64e31b1277594cbebd844e4a2d5;hb=e8ccfb6d205605b12c7373840ed5ff5003b667a0;hp=78401e1f9cebaff2b74aecb5f78a0c61642650b4;hpb=0b3159ec0c6984fdcc69bca8b5d1dbee56a51f4f;p=flightgear.git diff --git a/src/Scripting/nasal-props.cxx b/src/Scripting/nasal-props.cxx index 78401e1f9..1a16f8f91 100644 --- a/src/Scripting/nasal-props.cxx +++ b/src/Scripting/nasal-props.cxx @@ -111,7 +111,15 @@ static naRef f_setValue(naContext c, naRef args) static naRef f_setIntValue(naContext c, naRef args) { NODEARG(); - int iv = (int)naNumValue(naVec_get(args, 0)).num; + // Original code: + // int iv = (int)naNumValue(naVec_get(args, 0)).num; + + // Junk to pacify the gcc-2.95.3 optimizer: + naRef tmp0 = naVec_get(args, 0); + naRef tmp1 = naNumValue(tmp0); + double tmp2 = tmp1.num; + int iv = (int)tmp2; + (*node)->setIntValue(iv); return naNil(); } @@ -144,7 +152,13 @@ static naRef f_getChild(naContext c, naRef args) NODEARG(); naRef child = naVec_get(args, 0); if(!naIsString(child)) return naNil(); - SGPropertyNode* n = (*node)->getChild(naStr_data(child)); + naRef idx = naNumValue(naVec_get(args, 1)); + SGPropertyNode* n; + if(naIsNil(idx) || !naIsNum(idx)) { + n = (*node)->getChild(naStr_data(child)); + } else { + n = (*node)->getChild(naStr_data(child), (int)idx.num); + } if(!n) return naNil(); return propNodeGhostCreate(c, n); }