From a503b8859c37906ab5012db163daca43bfe393bb Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Sat, 21 May 2011 17:35:21 -0700 Subject: Make all handlers objects refcounted. I'm realizing that basically all upb objects will need to be refcounted to be sharable across languages, but *not* messages which are on their way out so we can get out of the business of data representations. Things which must be refcounted: - encoders, decoders - handlers objects - defs --- benchmarks/parsestream.upb_table.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'benchmarks/parsestream.upb_table.c') diff --git a/benchmarks/parsestream.upb_table.c b/benchmarks/parsestream.upb_table.c index 089d956..a4aebd8 100644 --- a/benchmarks/parsestream.upb_table.c +++ b/benchmarks/parsestream.upb_table.c @@ -10,7 +10,6 @@ static upb_string *input_str; static upb_msgdef *def; static upb_decoder decoder; static upb_stringsrc stringsrc; -upb_handlers handlers; static upb_sflow_t startsubmsg(void *_m, upb_value fval) { (void)_m; @@ -61,11 +60,12 @@ static bool initialize() return false; } - upb_handlers_init(&handlers); + upb_handlers *handlers = upb_handlers_new(); // Cause all messages to be read, but do nothing when they are. upb_handlerset hset = {NULL, NULL, value, startsubmsg, NULL, NULL, NULL}; - upb_handlers_reghandlerset(&handlers, def, &hset); - upb_decoder_init(&decoder, &handlers); + upb_handlers_reghandlerset(handlers, def, &hset); + upb_decoder_init(&decoder, handlers); + upb_handlers_unref(handlers); upb_stringsrc_init(&stringsrc); return true; } -- cgit v1.2.3