evas_shutdown() isn't exported anymore.
[ruby-evas.git] / src / rb_evas_object.c
index 6492a4e9de48fd2d3a10cd95bae056c63dc21d00..79dc66f7cc5f56d4f0b69bf3252ac5db5eaf52e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: rb_evas_object.c 20 2004-06-22 20:46:56Z tilman $
+ * $Id: rb_evas_object.c 29 2004-07-08 18:47:44Z tilman $
  *
  * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
  *
 #include "rb_evas.h"
 #include "rb_evas_object.h"
 
-#define GET_OBJ(obj, type, o, desc) \
-       type **(o) = NULL; \
-\
-       Data_Get_Struct ((obj), type *, (o)); \
-\
-       if (!*(o)) { \
-               rb_raise (rb_eException, desc " destroyed already"); \
-               return Qnil; \
-       }
-
-#define CHECK_BOOL(val) \
-       if (TYPE ((val)) != T_TRUE && TYPE ((val)) != T_FALSE) { \
-               rb_raise (rb_eTypeError, \
-                         "wrong argument type %s (expected true or false)", \
-                         rb_obj_classname ((val))); \
-               return Qnil; \
-       }
-
 static VALUE parents;
 
 /* called by the child classes */
@@ -52,6 +34,8 @@ void c_evas_object_free (Evas_Object **e)
        if (*e)
                evas_object_del (*e);
 
+       rb_hash_aset (parents, INT2NUM ((long) e), Qnil);
+
        free (e);
 }
 
@@ -81,7 +65,7 @@ static VALUE c_inspect (VALUE self)
 
        GET_OBJ (self, Evas_Object, e, "EvasObject");
 
-       snprintf (buf, sizeof (buf), "#<EvasObject:%p ptr=%p>",
+       snprintf (buf, sizeof (buf), "#<Evas::EvasObject:%p ptr=%p>",
                  (void *) self, *e);
 
        return rb_str_new2 (buf);
@@ -91,10 +75,8 @@ static VALUE c_delete (VALUE self)
 {
        GET_OBJ (self, Evas_Object, e, "EvasObject");
 
-       if (*e) {
-               evas_object_del (*e);
-               *e = NULL;
-       }
+       evas_object_del (*e);
+       *e = NULL;
 
        return Qnil;
 }