From 04602ae0d3b6898a47caf7f46600a6058b697a81 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Tue, 22 Mar 2005 17:42:04 +0000 Subject: [PATCH] Create the callbacks hash on first use. --- src/ecore_evas/rb_ecore_evas.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ecore_evas/rb_ecore_evas.c b/src/ecore_evas/rb_ecore_evas.c index 9b2ad29..3ded59d 100644 --- a/src/ecore_evas/rb_ecore_evas.c +++ b/src/ecore_evas/rb_ecore_evas.c @@ -1,5 +1,5 @@ /* - * $Id: rb_ecore_evas.c 110 2004-09-02 17:06:54Z tilman $ + * $Id: rb_ecore_evas.c 303 2005-03-22 17:42:04Z tilman $ * * Copyright (C) 2004 ruby-ecore team (see AUTHORS) * @@ -51,6 +51,9 @@ \ if (!rb_block_given_p ()) \ return Qnil; \ +\ + if (NIL_P (ee->callbacks)) \ + ee->callbacks = rb_hash_new (); \ \ rb_hash_aset (ee->callbacks, rb_str_new2 (#name), \ rb_block_proc ()); \ @@ -67,7 +70,8 @@ void c_ecore_evas_mark (RbEcoreEvas *ee) if (!NIL_P (ee->evas)) rb_gc_mark (ee->evas); - rb_gc_mark (ee->callbacks); + if (!NIL_P (ee->callbacks)) + rb_gc_mark (ee->callbacks); } void c_ecore_evas_free (RbEcoreEvas *ee, bool free_mem) @@ -88,7 +92,7 @@ static VALUE c_init (int argc, VALUE *argv, VALUE self) GET_OBJ (self, RbEcoreEvas, ee); ee->evas = Qnil; - ee->callbacks = rb_hash_new (); + ee->callbacks = Qnil; ecore_evas_data_set (ee->real, RUBY_ECORE_EVAS_KEY, (void *) self); -- 2.30.2