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