From 8e3c1986c49c1cc89878977a3459f5d2f9c57305 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 28 Aug 2011 17:54:54 +0900 Subject: [PATCH] don't write trailing NULLs in objects --- sexp.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sexp.c b/sexp.c index 21c21d81..3c362e41 100644 --- a/sexp.c +++ b/sexp.c @@ -65,9 +65,8 @@ sexp sexp_alloc_tagged_aux(sexp ctx, size_t size, sexp_uint_t tag sexp_current_s #if SEXP_USE_OBJECT_BRACE_LITERALS sexp sexp_write_simple_object (sexp ctx sexp_api_params(self, n), sexp obj, sexp out) { - sexp_sint_t i, len; - sexp t, *elts; - /* check eq-object slots */ + sexp_sint_t i, len, nulls=0; + sexp t, x, *elts; i = sexp_pointer_tag(obj); sexp_write_char(ctx, '{', out); sexp_write_string(ctx, @@ -78,8 +77,14 @@ sexp sexp_write_simple_object (sexp ctx sexp_api_params(self, n), sexp obj, sexp len = sexp_type_num_slots_of_object(t, obj); elts = (sexp*) (((char*)obj) + sexp_type_field_base(t)); for (i=0; i", out); + sexp_write_char(ctx, ' ', out); + sexp_write(ctx, sexp_slot_ref(obj, i), out); + } else { + nulls++; + } } sexp_write_char(ctx, '}', out); return SEXP_VOID;