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