diff --git a/src/encode.c b/src/encode.c index c1f8134ac96290c71efd1e99694f6562247f0734..8215406e89583bbf348f428244ec3070729317b3 100644 --- a/src/encode.c +++ b/src/encode.c @@ -516,7 +516,6 @@ static void encode_value2(struct svalue *val, struct encode_data *data, int forc fprintf(stderr,"TAG%d", TYPEOF(*val)); }else{ print_svalue(stderr, val); - } fputc('\n', stderr);); code_entry (TAG_DELAYED, entry_id.u.integer, data); @@ -541,10 +540,11 @@ static void encode_value2(struct svalue *val, struct encode_data *data, int forc { fprintf(stderr,"TAG%d", TYPEOF(*val)); }else{ - print_svalue(stderr, val); + print_svalue(stderr, val); } fputc('\n', stderr);); - mapping_insert(data->encoded, val, &entry_id); + if( TYPEOF(*val) < MIN_REF_TYPE || val->u.dummy->refs > 1 ) + mapping_insert(data->encoded, val, &entry_id); data->counter.u.integer++; } }