Enlightenment SVN wrote:
> Log:
>   fix possible errors with pointer/offset calculation.
>   
>   it works on gcc, but maybe it would break in other compilers, so make
>   it safe.

Why not use offsetof macro?

Sebastian

>   
>   
> Author:       barbieri
> Date:         2008-12-23 12:05:44 -0800 (Tue, 23 Dec 2008)
> New Revision: 38302
> 
> Modified:
>   trunk/eina/src/lib/eina_stringshare.c 
> 
> Modified: trunk/eina/src/lib/eina_stringshare.c
> ===================================================================
> --- trunk/eina/src/lib/eina_stringshare.c     2008-12-23 19:55:52 UTC (rev 
> 38301)
> +++ trunk/eina/src/lib/eina_stringshare.c     2008-12-23 20:05:44 UTC (rev 
> 38302)
> @@ -636,8 +636,8 @@
>  static Eina_Stringshare_Head *
>  _eina_stringshare_head_alloc(int slen)
>  {
> -   Eina_Stringshare_Head *head;
> -   const unsigned int head_size = (char *)head->builtin_node.str - (char 
> *)head;
> +   Eina_Stringshare_Head *head, t;
> +   const unsigned int head_size = (char *)&(t.builtin_node.str) - (char *)&t;
>  
>     head = malloc(head_size + slen);
>     if (!head)
> @@ -749,8 +749,8 @@
>  static Eina_Stringshare_Node *
>  _eina_stringshare_node_alloc(int slen)
>  {
> -   Eina_Stringshare_Node *node;
> -   const unsigned int node_size = (char *)node->str - (char *)node;
> +   Eina_Stringshare_Node *node, t;
> +   const unsigned int node_size = (char *)&(t.str) - (char *)&t;
>  
>     node = malloc(node_size + slen);
>     if (!node)
> @@ -953,8 +953,8 @@
>  static Eina_Stringshare_Node *
>  _eina_stringshare_node_from_str(const char *str)
>  {
> -   Eina_Stringshare_Node *node;
> -   const unsigned int offset = (char *)node->str - (char *)node;
> +   Eina_Stringshare_Node *node, t;
> +   const unsigned int offset = (char *)&(t.str) - (char *)&t;
>  
>     node = (Eina_Stringshare_Node *)(str - offset);
>     EINA_MAGIC_CHECK_STRINGSHARE_NODE(node);
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> enlightenment-svn mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn


------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to