diff --git a/src/mapping.c b/src/mapping.c index 723c68c2d417b80c59acc36afd0dbf25e2ba85ca..5e869339e66b04ae3eaacb60901866a3bb350fc7 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: mapping.c,v 1.138 2001/09/25 05:55:10 hubbe Exp $"); +RCSID("$Id: mapping.c,v 1.139 2001/10/03 22:20:45 hubbe Exp $"); #include "main.h" #include "object.h" #include "mapping.h" @@ -2460,6 +2460,7 @@ void zap_all_mappings(void) int mapping_is_constant(struct mapping *m, struct processing *p) { + int ret=1; INT32 e; struct keypair *k; struct mapping_data *md=m->data; @@ -2470,11 +2471,16 @@ int mapping_is_constant(struct mapping *m, add_ref(md); NEW_MAPPING_LOOP(md) { - if(!svalues_are_constant(&k->ind, 1, md->ind_types, p)) return 0; - if(!svalues_are_constant(&k->val, 1, md->val_types, p)) return 0; + if(!svalues_are_constant(&k->ind, 1, md->ind_types, p) || + !svalues_are_constant(&k->val, 1, md->val_types, p)) + { + ret=0; + e=md->hashsize; + break; + } } md->valrefs--; free_mapping_data(md); } - return 1; + return ret; }