From 500e6a3cfce4f63197eed8805f206d0fb825daaa Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Tue, 22 Mar 2005 17:41:35 +0000 Subject: [PATCH] Create the callbacks hash on first use. --- src/rb_evas_object.c | 8 +++++--- src/rb_evas_object_events.c | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/rb_evas_object.c b/src/rb_evas_object.c index b32f2b8..c2d39af 100644 --- a/src/rb_evas_object.c +++ b/src/rb_evas_object.c @@ -1,5 +1,5 @@ /* - * $Id: rb_evas_object.c 281 2005-03-14 20:51:40Z tilman $ + * $Id: rb_evas_object.c 302 2005-03-22 17:41:35Z tilman $ * * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de) * @@ -49,7 +49,9 @@ VALUE TO_EVAS_OBJECT (Evas_Object *o) void c_evas_object_mark (RbEvasObject *e) { rb_gc_mark (e->parent); - rb_gc_mark (e->callbacks); + + if (!NIL_P (e->callbacks)) + rb_gc_mark (e->callbacks); } void c_evas_object_free (RbEvasObject *e, bool free_mem) @@ -69,7 +71,7 @@ static VALUE c_init (VALUE self, VALUE parent) evas_object_data_set (e->real, RUBY_EVAS_OBJECT_KEY, (void *) self); e->parent = parent; - e->callbacks = rb_hash_new (); + e->callbacks = Qnil; return self; } diff --git a/src/rb_evas_object_events.c b/src/rb_evas_object_events.c index becdee9..1d465a7 100644 --- a/src/rb_evas_object_events.c +++ b/src/rb_evas_object_events.c @@ -1,5 +1,5 @@ /* - * $Id: rb_evas_object_events.c 285 2005-03-15 18:00:50Z tilman $ + * $Id: rb_evas_object_events.c 302 2005-03-22 17:41:35Z tilman $ * * Copyright (C) 2005 Tilman Sauerbeck (tilman at code-monkey de) * @@ -47,6 +47,9 @@ \ if (!rb_block_given_p ()) \ return Qnil; \ +\ + if (NIL_P (e->callbacks)) \ + e->callbacks = rb_hash_new (); \ \ rb_hash_aset (e->callbacks, rb_str_new2 (#name), \ rb_block_proc ()); \ -- 2.30.2