[Pkg-jed-commit] [SCM] Debian packaging of JED branch, jo-upstream-fixes, updated. 222c5d0c856c5cf1eb218493eddbf33d6e43fd5c

Jörg Sommer joerg at alea.gnuu.de
Sun Aug 24 17:07:40 UTC 2008


The following commit has been merged in the jo-upstream-fixes branch:
commit 222c5d0c856c5cf1eb218493eddbf33d6e43fd5c
Author: Jörg Sommer <joerg at alea.gnuu.de>
Date:   Sun Aug 24 18:34:57 2008 +0200

    Use intermediate void* pointer for SLmalloc() return values
    
    The cast from char* to any other pointer type might increases required
    alignment of target type. This causes problems on some architectures
    (like alpha).
    
    Fix it by saving the result of SLmalloc() and SLrealloc() to a void*
    pointer and then copy it to the target variable.

diff --git a/src/abbrev.c b/src/abbrev.c
index b8400a2..25349cc 100644
--- a/src/abbrev.c
+++ b/src/abbrev.c
@@ -256,7 +256,11 @@ void define_abbrev (char *table, char *abbrev, char *expans) /*{{{*/
 	unsigned int max_len = tbl->max_len + 32;
 	
 	/* SLrealloc handles NULL via malloc */
-	if (NULL == (a = (Abbrev_Type *) SLrealloc ((char *) a, max_len * sizeof (Abbrev_Type))))
+        {
+            void *tmp_ptr = SLrealloc ((char *) a, max_len * sizeof (Abbrev_Type));
+            a = tmp_ptr;
+        }
+	if (NULL == a)
 	  return;
 	
 	tbl->abbrevs = a;
diff --git a/src/buffer.c b/src/buffer.c
index 7fd9438..f78c071 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -676,7 +676,11 @@ static Line *create_line_from_bunch(void) /*{{{*/
    
    /* failed so now malloc new bunch */
    
-   if (NULL == (b = (Bunch_Lines_Type *) SLmalloc (sizeof(Bunch_Lines_Type))))
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Bunch_Lines_Type));
+       b = tmp_ptr;
+   }
+   if (NULL == b)
      return NULL;
    
    if (Bunch_Lines == NULL)
@@ -1177,7 +1181,10 @@ Line *dup_line(Line *l) /*{{{*/
    n = l->len;
 #endif
    
-   neew = (Line *) SLmalloc (sizeof(Line));
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Line));
+       neew = tmp_ptr;
+   }
    if ((neew == NULL) ||
        (NULL == (neew->data = (unsigned char *) SLmalloc (n))))
      {
@@ -1566,7 +1573,8 @@ int jed_set_buffer_hook (Buffer *buffer, char *name, SLang_Name_Type *nt)
 
    if (b == NULL)
      {
-	b = (Jed_Buffer_Hook_Type *)SLmalloc (sizeof (Jed_Buffer_Hook_Type));
+        void *tmp_ptr = SLmalloc (sizeof(Jed_Buffer_Hook_Type));
+        b = tmp_ptr;
 	if (b == NULL)
 	  return -1;
 	memset ((char *) b, 0, sizeof (Jed_Buffer_Hook_Type));
diff --git a/src/dfasyntx.c b/src/dfasyntx.c
index 8e0b405..e5759a8 100644
--- a/src/dfasyntx.c
+++ b/src/dfasyntx.c
@@ -119,7 +119,10 @@ static Highlight *init_highlight (void)
 {
    Highlight *result;
    
-   result = (Highlight *) SLmalloc (sizeof (Highlight));
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Highlight));
+       result = tmp_ptr;
+   }
    if (result != NULL)
      {
 	memset ((char *) result, 0, sizeof (Highlight));
@@ -154,7 +157,10 @@ static void add_rule (Highlight *h, char *rule, int length,
 	 * accepting.
 	 */
 	add_nfa_trans (h, is_begin ? 1 : 0, start, NULL);
-	acc = (Accept *) SLmalloc (sizeof(Accept));
+        {
+            void *tmp_ptr = SLmalloc (sizeof(Accept));
+            acc = tmp_ptr;
+        }
 	if (acc == NULL)
 	  goto error;		       /* grotty, I know, but... */
 	acc->next = h->accept;
@@ -442,7 +448,10 @@ static void add_nfa_trans (Highlight *h, int from, int to, Set set)
    int i;
    unsigned char other[UCHAR_MAX+1], in[UCHAR_MAX+1];
    
-   trans = (NFA *) SLmalloc(sizeof(*trans));
+   {
+       void *tmp_ptr = SLmalloc (sizeof(*trans));
+       trans = tmp_ptr;
+   }
    if (trans) 
      {
 	trans->next = h->nfa;
@@ -554,7 +563,10 @@ static void make_dfa (Highlight *h)
      */
    h->dfa_states = 0;
    
-   h->dfa = tail = (DFA *) SLmalloc(sizeof(DFA));
+   {
+       void *tmp_ptr = SLmalloc (sizeof(DFA));
+       h->dfa = tail = tmp_ptr;
+   }
    if (tail == NULL)
      goto error;
    
@@ -575,7 +587,11 @@ static void make_dfa (Highlight *h)
      * zero and one, and is the start state for the DFA when we are
      * at the beginning of a line.
      */
-   if (NULL == (tail->next = (DFA *) SLmalloc(sizeof(DFA))))
+   {
+       void *tmp_ptr = SLmalloc (sizeof(DFA));
+       tail->next = tmp_ptr;
+   }
+   if (NULL == tail->next)
      goto error;
    tail = tail->next;
    memset ((char *) tail, 0, sizeof (DFA));
@@ -629,7 +645,11 @@ static void make_dfa (Highlight *h)
 		       
 		       if (!search) 
 			 {
-			    if (NULL == (search = tail->next = (DFA *) SLmalloc(sizeof(DFA))))
+                            {
+                               void *tmp_ptr = SLmalloc (sizeof(DFA));
+                               search = tail->next = tmp_ptr;
+                            }
+			    if (NULL == search)
 			      goto error;
 			    tail = tail->next;
 			    if (NULL == (tail->nfa_set = (unsigned char *)SLmalloc(setsize)))
@@ -803,7 +823,10 @@ static int load_dfa (Highlight *h, char *name)
    get(buffer);
    if (!sscanf(buffer, "accept %d", &accepts))
      goto error;
-   accept = (Accept *) SLmalloc(sizeof(Accept) * accepts);
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Accept) * accepts);
+       accept = tmp_ptr;
+   }
    if (!accept)
      goto error;
    for (i=0; i<accepts; i++) 
@@ -826,7 +849,10 @@ static int load_dfa (Highlight *h, char *name)
    get(buffer);
    if (!sscanf(buffer, "dfa %d", &dfa_states))
      goto error;
-   dfa = (DFA *) SLmalloc(sizeof(DFA) * dfa_states);
+   {
+       void *tmp_ptr = SLmalloc (sizeof(DFA) * dfa_states);
+       dfa = tmp_ptr;
+   }
    if (!dfa)
      goto error;
    for (i=0; i<dfa_states; i++) 
diff --git a/src/hooks.c b/src/hooks.c
index dae7be2..8db70a4 100644
--- a/src/hooks.c
+++ b/src/hooks.c
@@ -316,7 +316,10 @@ static char **build_arg_list (unsigned int n, va_list ap)
    char **s;
    unsigned int i;
 
-   s = (char **)SLmalloc ((n+1) * sizeof (char *));
+   {
+       void *tmp_ptr = SLmalloc ((n+1) * sizeof (char *));
+       s = tmp_ptr;
+   }
    if (s == NULL)
      return NULL;
    
diff --git a/src/ledit.c b/src/ledit.c
index 6fcf426..e457c1d 100644
--- a/src/ledit.c
+++ b/src/ledit.c
@@ -2076,7 +2076,10 @@ int jed_add_init_slang_hook (int (*hook)(void))
    if (hook == NULL)
      return 0;
    
-   h = (Init_SLang_Hook_Type *)SLmalloc (sizeof (Init_SLang_Hook_Type));
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Init_SLang_Hook_Type));
+       h = tmp_ptr;
+   }
    if (h == NULL)
      return -1;
    
diff --git a/src/menu.c b/src/menu.c
index 8f3d23e..453e588 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -294,7 +294,11 @@ static Menu_Popup_Type *create_menu_popup (char *name, unsigned int num_items)
    if (num_items == 0)
      num_items = 5;
    
-   if (NULL == (m->subnodes = (Menu_Node_Type **)SLmalloc (num_items * sizeof (Menu_Node_Type *))))
+   {
+       void *tmp_ptr = SLmalloc (num_items * sizeof (Menu_Node_Type *));
+       m->subnodes = tmp_ptr;
+   }
+   if (NULL == m->subnodes)
      {
 	free_menu_node ((Menu_Node_Type *) m);
 	return NULL;
@@ -316,7 +320,11 @@ static Menu_Bar_Type *create_menu_bar (char *name, unsigned int num_items)
    if (num_items == 0)
      num_items = 5;
 
-   if ((NULL == (m->subnodes = (Menu_Node_Type **)SLmalloc (num_items * sizeof (Menu_Node_Type *))))
+   {
+       void *tmp_ptr = SLmalloc (num_items * sizeof (Menu_Node_Type *));
+       m->subnodes = tmp_ptr;
+   }
+   if ((NULL == m->subnodes)
        || (NULL == (m->item_columns = jed_malloc0 (num_items * sizeof (int)))))
      {
 	free_menu_node ((Menu_Node_Type *) m);
@@ -428,7 +436,10 @@ static int check_subnode_space (Menu_Popup_Type *m, unsigned int dn)
 
    num = m->max_subnodes + dn;
 
-   subnodes = (Menu_Node_Type **)SLrealloc ((char *)m->subnodes, num * sizeof (Menu_Node_Type *));
+   {
+       void *tmp_ptr = SLrealloc ((char *)m->subnodes, num * sizeof (Menu_Node_Type *));
+       subnodes = tmp_ptr;
+   }
    if (subnodes == NULL)
      return -1;
    m->subnodes = subnodes;
@@ -439,7 +450,10 @@ static int check_subnode_space (Menu_Popup_Type *m, unsigned int dn)
 	int *item_columns;
 	unsigned int i;
 
-	item_columns = (int *)SLrealloc ((char *)b->item_columns, num * sizeof(int));
+        {
+            void *tmp_ptr = SLrealloc ((char *)b->item_columns, num * sizeof(int));
+            item_columns = tmp_ptr;
+        }
 	if (item_columns == NULL)
 	  return -1;
 	
diff --git a/src/undo.c b/src/undo.c
index 24aa5c1..42c360f 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -326,7 +326,11 @@ void create_undo_ring() /*{{{*/
    Undo_Object_Type *uo;
    int n;
    
-   if (NULL == (ur = (Undo_Type *) SLmalloc (sizeof(Undo_Type))))
+   {
+       void *tmp_ptr = SLmalloc (sizeof(Undo_Type));
+       ur = tmp_ptr;
+   }
+   if (NULL == ur)
      {
 	msg_error("Unable to malloc space for undo!");
 	return;
diff --git a/src/vfile.c b/src/vfile.c
index d6f4de2..1a4a8f3 100644
--- a/src/vfile.c
+++ b/src/vfile.c
@@ -121,7 +121,11 @@ VFILE *vstream(int fd, unsigned int size, unsigned int mode) /*{{{*/
 {
    VFILE *v;
    
-   if (NULL == (v = (VFILE *) SLmalloc(sizeof(VFILE)))) return(NULL);
+   {
+       void *tmp_ptr = SLmalloc (sizeof(VFILE));
+       v = tmp_ptr;
+   }
+   if (NULL == v) return(NULL);
    v->bmax = v->bp = v->buf = NULL;
    v->fd = fd;
    v->eof = NULL;
diff --git a/src/vterm.c b/src/vterm.c
index bad1080..17464ad 100644
--- a/src/vterm.c
+++ b/src/vterm.c
@@ -107,7 +107,11 @@ int vterm_init_display (int rows, int cols)
      {
 	SLsmg_Char_Type *s;
 
-	if (NULL == (s = (SLsmg_Char_Type *) SLmalloc (cols * sizeof (SLsmg_Char_Type))))
+        {
+            void *tmp_ptr = SLmalloc (cols * sizeof (SLsmg_Char_Type));
+            s = tmp_ptr;
+        }
+	if (NULL == s)
 	  {
 	     vterm_reset_display ();
 	     return -1;
diff --git a/src/xterm.c b/src/xterm.c
index f46a6db..36f9db7 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -400,7 +400,8 @@ static SLwchar_Type *bytes_to_wchars (unsigned char *s, unsigned int nchars)
 {
    unsigned int i;
    
-   SLwchar_Type *w = (SLwchar_Type *)SLmalloc(nchars*sizeof(SLwchar_Type));   
+   void *tmp_ptr = SLmalloc(nchars*sizeof(SLwchar_Type));
+   SLwchar_Type *w = tmp_ptr;
    if (w == NULL)
      return NULL;
 
@@ -417,7 +418,11 @@ static SLwchar_Type *utf8nt_to_wchars(unsigned char *s, unsigned int len, unsign
    unsigned char *smax;
 
    nchars = SLutf8_strlen(s, 0);
-   if (NULL == (w = (SLwchar_Type *)SLmalloc(nchars*sizeof(SLwchar_Type))))
+   {
+       void *tmp_ptr = SLmalloc(nchars*sizeof(SLwchar_Type));
+       w = tmp_ptr;
+   }
+   if (NULL == w)
      {
 	*ncharsp = 0;
 	return NULL;
@@ -1007,7 +1012,11 @@ static void cover_exposed_area (int x, int y, int width, int height, int count)
    if (max_col > JX_Screen_Cols) max_col = JX_Screen_Cols;
    if (max_row > JX_Screen_Rows) max_row = JX_Screen_Rows;
 
-   if (NULL != (s = (SLsmg_Char_Type *)SLmalloc(width_chars*sizeof(SLsmg_Char_Type))))
+   {
+       void *tmp_ptr = SLmalloc(width_chars*sizeof(SLsmg_Char_Type));
+       s = tmp_ptr;
+   }
+   if (NULL != s)
      {
 	while (row < max_row)
 	  {

-- 
Debian packaging of JED



More information about the Pkg-jed-commit mailing list