From c443dd97fd6ee90bc3704a6d229c690496b32367 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 12 Apr 2011 09:00:45 +0000 Subject: [PATCH] eina: fix 64bits warning. SVN revision: 58583 --- legacy/eina/src/lib/eina_object.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/legacy/eina/src/lib/eina_object.c b/legacy/eina/src/lib/eina_object.c index 83f43e4fc1..0a6fa9588f 100644 --- a/legacy/eina/src/lib/eina_object.c +++ b/legacy/eina/src/lib/eina_object.c @@ -65,10 +65,12 @@ typedef unsigned long Eina_Object_ID; typedef unsigned short Eina_Object_Generation; #define EINA_GEN_OFFSET 48 +#define EINA_ID_STR "%li" #else typedef unsigned int Eina_Object_ID; typedef unsigned char Eina_Object_Generation; #define EINA_GEN_OFFSET 24 +#define EINA_ID_STR "%i" #endif typedef struct _Eina_Class_Range Eina_Class_Range; @@ -252,7 +254,7 @@ _eina_object_get(Eina_Object_Item *item) gen = item->range->generation_array[item->index]; - id = (gen << EINA_GEN_OFFSET) + item->range->start + item->index; + id = ((Eina_Object_ID) gen << EINA_GEN_OFFSET) + item->range->start + item->index; return (Eina_Object *) id; } @@ -266,11 +268,11 @@ _eina_object_find_item(Eina_Class *class, Eina_Object *object) Eina_Rbtree *match; Eina_Object_Generation generation; Eina_Object_ID id; - int idx; + Eina_Object_ID idx; id = (Eina_Object_ID) object; - idx = id & ((1 << EINA_GEN_OFFSET) - 1); - generation = id & !((1 << EINA_GEN_OFFSET) - 1); + idx = id & (((Eina_Object_ID) 1 << EINA_GEN_OFFSET) - 1); + generation = id & !(((Eina_Object_ID) 1 << EINA_GEN_OFFSET) - 1); /* Try to find the ID */ match = eina_rbtree_inline_lookup(class->top->range, @@ -279,7 +281,7 @@ _eina_object_find_item(Eina_Class *class, Eina_Object *object) /* ID not found, invalid pointer ! */ if (!match) { - ERR("%p: ID [%i] not found in class hiearchy of [%s].", + ERR("%p: ID ["EINA_ID_STR"] not found in class hiearchy of [%s].", object, idx, class->name); return NULL; }