raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ab0cb7a62dcc0f701fd960aa34547f770ac9f93d
commit ab0cb7a62dcc0f701fd960aa34547f770ac9f93d Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Fri Sep 9 12:50:56 2016 +0900 eo - we actually steal the 3rd highest bit for classes - fix we now just lost another bit from generation count. down to 6 in 32bit and 26 in 64 bit. this sucks but is necessary. now we are using the bits just below ref and super bits the code was just maskign off the next bit as a class marker. this was so so so so wrong. it was the ide table space. we just never used numbers high enough to start using it. since i added domain there now those bits can be used easily with thread domain or other domain. argh! existing eo bug found and fixed. annoying! :) i added another #define there just to be clear we use that bit for classes. --- src/lib/eo/eo_ptr_indirection.x | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eo/eo_ptr_indirection.x b/src/lib/eo/eo_ptr_indirection.x index 21b88ac..04ddb7c 100644 --- a/src/lib/eo/eo_ptr_indirection.x +++ b/src/lib/eo/eo_ptr_indirection.x @@ -62,7 +62,7 @@ # define BITS_MID_TABLE_ID 5 # define BITS_TABLE_ID 5 # define BITS_ENTRY_ID 11 -# define BITS_GENERATION_COUNTER 7 +# define BITS_GENERATION_COUNTER 6 # define BITS_DOMAIN 2 # define REF_TAG_SHIFT 30 # define SUPER_TAG_SHIFT 31 @@ -75,7 +75,7 @@ typedef uint16_t Generation_Counter; # define BITS_MID_TABLE_ID 11 # define BITS_TABLE_ID 11 # define BITS_ENTRY_ID 11 -# define BITS_GENERATION_COUNTER 27 +# define BITS_GENERATION_COUNTER 26 # define BITS_DOMAIN 2 # define REF_TAG_SHIFT 62 # define SUPER_TAG_SHIFT 63 --
