projects
/
ruby-edje.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup.
[ruby-edje.git]
/
src
/
rb_edje.c
diff --git
a/src/rb_edje.c
b/src/rb_edje.c
index 25be7482d724d756ebbf58dc1341c14b0edd8308..02ff4ea2f254abec8e9e88531bc5fe6e8a98c5b7 100644
(file)
--- a/
src/rb_edje.c
+++ b/
src/rb_edje.c
@@
-1,5
+1,5
@@
/*
/*
- * $Id: rb_edje.c
139 2004-10-30 09:41:17
Z tilman $
+ * $Id: rb_edje.c
328 2005-04-28 07:44:46
Z tilman $
*
* Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
*
*
* Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
*
@@
-36,8
+36,11
@@
static void c_mark (RbEdje *e)
{
c_evas_object_mark (&e->real);
{
c_evas_object_mark (&e->real);
- rb_gc_mark (e->parts);
- rb_gc_mark (e->callbacks);
+ if (!NIL_P (e->parts))
+ rb_gc_mark (e->parts);
+
+ if (!NIL_P (e->callbacks))
+ rb_gc_mark (e->callbacks);
if (!NIL_P (e->on_text_changed_cb))
rb_gc_mark (e->on_text_changed_cb);
if (!NIL_P (e->on_text_changed_cb))
rb_gc_mark (e->on_text_changed_cb);
@@
-46,6
+49,7
@@
static void c_mark (RbEdje *e)
static void c_free (RbEdje *e)
{
c_evas_object_free (&e->real, false);
static void c_free (RbEdje *e)
{
c_evas_object_free (&e->real, false);
+ free (e);
edje_shutdown ();
}
edje_shutdown ();
}
@@
-69,8
+73,8
@@
static VALUE c_new (VALUE klass, VALUE evas)
self = Data_Make_Struct (klass, RbEdje, c_mark, c_free, edje);
edje->real.real = edje_object_add (e->real);
self = Data_Make_Struct (klass, RbEdje, c_mark, c_free, edje);
edje->real.real = edje_object_add (e->real);
- edje->parts =
rb_hash_new ()
;
- edje->callbacks =
rb_ary_new ()
;
+ edje->parts =
Qnil
;
+ edje->callbacks =
Qnil
;
edje->on_text_changed_cb = Qnil;
argv[0] = evas;
edje->on_text_changed_cb = Qnil;
argv[0] = evas;
@@
-197,15
+201,18
@@
static VALUE c_part_exists_get (VALUE self, VALUE name)
static VALUE c_part_get (VALUE self, VALUE name)
{
VALUE part;
static VALUE c_part_get (VALUE self, VALUE name)
{
VALUE part;
+ const char *cname = StringValuePtr (name);
GET_OBJ (self, RbEdje, e);
GET_OBJ (self, RbEdje, e);
- Check_Type (name, T_STRING);
- if (!edje_object_part_exists (e->real.real,
StringValuePtr (name)
)) {
- rb_raise (rb_eException, "Unknown part name
"
);
+ if (!edje_object_part_exists (e->real.real,
cname
)) {
+ rb_raise (rb_eException, "Unknown part name
- %s", cname
);
return Qnil;
}
return Qnil;
}
+ if (NIL_P (e->parts))
+ e->parts = rb_hash_new ();
+
if (NIL_P (part = rb_hash_aref (e->parts, name))) {
part = TO_PART (self, name);
rb_hash_aset (e->parts, name, part);
if (NIL_P (part = rb_hash_aref (e->parts, name))) {
part = TO_PART (self, name);
rb_hash_aset (e->parts, name, part);
@@
-223,6
+230,9
@@
static void on_text_changed (void *data, Evas_Object *eo,
name = rb_str_new2 (part_name);
name = rb_str_new2 (part_name);
+ if (NIL_P (e->parts))
+ e->parts = rb_hash_new ();
+
if (NIL_P (part = rb_hash_aref (e->parts, name))) {
part = TO_PART (self, name);
rb_hash_aset (e->parts, name, part);
if (NIL_P (part = rb_hash_aref (e->parts, name))) {
part = TO_PART (self, name);
rb_hash_aset (e->parts, name, part);
@@
-314,6
+324,10
@@
static VALUE c_on_signal (int argc, VALUE *argv, VALUE self)
return Qnil;
cb = rb_block_proc ();
return Qnil;
cb = rb_block_proc ();
+
+ if (NIL_P (e->callbacks))
+ e->callbacks = rb_ary_new ();
+
rb_ary_push (e->callbacks, cb);
edje_object_signal_callback_add (e->real.real,
rb_ary_push (e->callbacks, cb);
edje_object_signal_callback_add (e->real.real,