diff --git a/src/mapping.c b/src/mapping.c index b75ed0e42bf2db648bacca640035cd1d041a923d..25ad74860402cc9e7e108e69f2acf13de963ac87 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: mapping.c,v 1.81 2000/04/30 23:15:16 hubbe Exp $"); +RCSID("$Id: mapping.c,v 1.82 2000/05/01 02:10:30 hubbe Exp $"); #include "main.h" #include "object.h" #include "mapping.h" @@ -1363,9 +1363,10 @@ struct mapping *add_mappings(struct svalue *argp, INT32 args) #endif /* FIXME: need locking! */ - if(argp[0].u.mapping->refs == 1) + if(argp[0].u.mapping->refs == 1 && + !argp[0].u.mapping->data->hardlinks) { - ret=argp[0].u.mapping; + add_ref( ret=argp[0].u.mapping ); d=1; }else{ ret=allocate_mapping(MAP_SLOTS(e));