Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_property.c etk_property.h 


Log Message:
- since we cant store unions in eet in a sane way (yet), we'll turn this
union into a struct for now.


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_property.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_property.c      2 Apr 2007 09:48:29 -0000       1.10
+++ etk_property.c      18 Jun 2007 22:24:12 -0000      1.11
@@ -80,7 +80,7 @@
       return;
 
    if (value->type == ETK_PROPERTY_STRING)
-      free(value->value.string_value);
+      free(value->value->string_value);
    value->type = ETK_PROPERTY_NONE;
 }
 
@@ -91,6 +91,7 @@
 void etk_property_value_delete(Etk_Property_Value *value)
 {
    etk_property_value_clear(value);
+   if (value) free(value->value);
    free(value);
 }
 
@@ -114,6 +115,7 @@
 {
    Etk_Property_Value *new_value;
    new_value = malloc(sizeof(Etk_Property_Value));
+   new_value->value = malloc(sizeof(Etk_Property_Value_Value));
    new_value->type = ETK_PROPERTY_NONE;
    return new_value;
 }
@@ -379,7 +381,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.int_value = value;
+   property_value->value->int_value = value;
    property_value->type = ETK_PROPERTY_INT;
 }
 
@@ -394,7 +396,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.bool_value = value;
+   property_value->value->bool_value = value;
    property_value->type = ETK_PROPERTY_BOOL;
 }
 
@@ -409,7 +411,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.char_value = value;
+   property_value->value->char_value = value;
    property_value->type = ETK_PROPERTY_CHAR;
 }
 
@@ -424,7 +426,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.float_value = value;
+   property_value->value->float_value = value;
    property_value->type = ETK_PROPERTY_FLOAT;
 }
 
@@ -439,7 +441,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.double_value = value;
+   property_value->value->double_value = value;
    property_value->type = ETK_PROPERTY_DOUBLE;
 }
 
@@ -454,7 +456,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.short_value = value;
+   property_value->value->short_value = value;
    property_value->type = ETK_PROPERTY_SHORT;
 }
 
@@ -469,7 +471,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.long_value = value;
+   property_value->value->long_value = value;
    property_value->type = ETK_PROPERTY_LONG;
 }
 
@@ -484,7 +486,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value.pointer_value = value;
+   property_value->value->pointer_value = value;
    property_value->type = ETK_PROPERTY_POINTER;
 }
 
@@ -500,9 +502,9 @@
 
    etk_property_value_clear(property_value);
    if (value)
-      property_value->value.string_value = strdup(value);
+      property_value->value->string_value = strdup(value);
    else
-      property_value->value.string_value = NULL;
+      property_value->value->string_value = NULL;
    property_value->type = ETK_PROPERTY_STRING;
 }
 
@@ -560,7 +562,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_INT)
       return 0;
-   return value->value.int_value;
+   return value->value->int_value;
 }
 
 /**
@@ -572,7 +574,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_BOOL)
       return ETK_FALSE;
-   return value->value.bool_value;
+   return value->value->bool_value;
 }
 
 /**
@@ -584,7 +586,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_CHAR)
       return 0;
-   return value->value.char_value;
+   return value->value->char_value;
 }
 
 /**
@@ -596,7 +598,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_FLOAT)
       return 0.0;
-   return value->value.float_value;
+   return value->value->float_value;
 }
 
 /**
@@ -608,7 +610,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_DOUBLE)
       return 0.0;
-   return value->value.double_value;
+   return value->value->double_value;
 }
 
 /**
@@ -620,7 +622,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_SHORT)
       return 0;
-   return value->value.short_value;
+   return value->value->short_value;
 }
 
 /**
@@ -632,7 +634,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_LONG)
       return 0;
-   return value->value.long_value;
+   return value->value->long_value;
 }
 
 /**
@@ -644,7 +646,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_POINTER)
       return NULL;
-   return value->value.pointer_value;
+   return value->value->pointer_value;
 }
 
 /**
@@ -656,7 +658,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_STRING)
       return NULL;
-   return value->value.string_value;
+   return value->value->string_value;
 }
 
 /** @} */
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_property.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_property.h      2 Apr 2007 09:48:29 -0000       1.9
+++ etk_property.h      18 Jun 2007 22:24:13 -0000      1.10
@@ -67,11 +67,10 @@
  * and etk_object_properties_get() to set and get the value of a property of 
an object.
  * @structinfo
  */
-struct Etk_Property_Value
+
+typedef struct _Etk_Property_Value_Value Etk_Property_Value_Value;
+struct _Etk_Property_Value_Value
 {
-   /* private: */
-   union
-   {
       int int_value;
       Etk_Bool bool_value;
       char char_value;
@@ -81,7 +80,12 @@
       long long_value;
       void *pointer_value;
       char *string_value;
-   } value;
+};
+
+struct Etk_Property_Value
+{
+   /* private: */
+   Etk_Property_Value_Value *value;
    Etk_Property_Type type;
 };
 



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to