File type-punned-pointer.patch of Package sblim-sfcCommon

From 076837600d847d2cad68a09ccd14c8c16ec5a696 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@suse.de>
Date: Mon, 29 Aug 2011 12:34:26 +0200
Subject: [PATCH] Fix type-punned pointer issues

---
 sfcUtil/genericlist.c |   38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/sfcUtil/genericlist.c b/sfcUtil/genericlist.c
index b56b9ca..1c09bd0 100644
--- a/sfcUtil/genericlist.c
+++ b/sfcUtil/genericlist.c
@@ -537,6 +537,8 @@ copy_list(Generic_list list)
 /****************************************************************************/
 /****************************************************************************/
 
+#define GENERIC_LIST_HEAD(ul) *((Generic_list *)ul)
+
 static void    *
 emalloc(unsigned int n)
 {
@@ -553,7 +555,7 @@ emalloc(unsigned int n)
 static void
 listRelease(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   destroy_list(&l);
   if (ul->ft->memUnlink)  ul->ft->memUnlink(ul->mem_state);
   free(ul);
@@ -562,7 +564,7 @@ listRelease(UtilList * ul)
 static UtilList *
 listClone(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   UtilList       *nul = NEW(UtilList);
   *nul = *ul;
   nul->hdl = copy_list(l).info;
@@ -572,56 +574,56 @@ listClone(UtilList * ul)
 static void
 listClear(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   remove_all(l);
 }
 
 static unsigned long
 listSize(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return num_of_objects(l);
 }
 
 static int
 listIsEmpty(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return is_empty(l);
 }
 
 static int
 listContains(UtilList * ul, const void *elm)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return is_in_list(l, elm);
 }
 
 static void
 listAppend(UtilList * ul, const void *elm)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   add_to_end(l, (void *) elm);
 }
 
 static void
 listPrepend(UtilList * ul, const void *elm)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   add_to_beginning(l, (void *) elm);
 }
 
 static void
 listAdd(UtilList * ul, const void *elm)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   add_to_beginning(l, (void *) elm);
 }
 
 static void    *
 listGetFirst(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   reset_to_beginning(l);
   return first_in_list(l);
 }
@@ -629,56 +631,56 @@ listGetFirst(UtilList * ul)
 static void    *
 listGetLast(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return last_in_list(l);
 }
 
 static void    *
 listGetNext(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return next_in_list(l);
 }
 
 static void    *
 listGetPrevious(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return previous_in_list(l);
 }
 
 static void    *
 listGetCurrent(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return current_in_list(l);
 }
 
 static void    *
 listRemoveFirst(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return remove_from_beginning(l);
 }
 
 static void    *
 listRemoveLast(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return remove_from_end(l);
 }
 
 static void    *
 listRemoveCurrent(UtilList * ul)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return remove_current(l);
 }
 
 static void    *
 listRemoveThis(UtilList * ul, void *elm)
 {
-  Generic_list    l = *(Generic_list *) & ul->hdl;
+  Generic_list    l = GENERIC_LIST_HEAD(ul);
   return remove_from_list(l, elm);
 }
 
-- 
1.7.10.4

openSUSE Build Service is sponsored by