]> granicus.if.org Git - gc/commitdiff
Fix 'signed-to-bigger-unsigned value assignment' warning for hb_map
authorIvan Maidanski <ivmai@mail.ru>
Tue, 16 Feb 2016 20:34:43 +0000 (23:34 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 16 Feb 2016 20:34:43 +0000 (23:34 +0300)
* include/private/gc_priv.h (hblkhdr): Change type of hb_map from
short to unsigned short.
* include/private/gc_priv.h (_GC_arrays): Change type of _obj_map from
short to unsigned short.
* obj_map.c (GC_add_map_entry): Change type of new_map local variable
from short to unsigned short.

include/private/gc_priv.h
obj_map.c

index a84536e7fbab6a4e5f2f765493c46bd3452da6df..d2f69be3bd9da6b947e32cd647a28f6ba0779d7b 100644 (file)
@@ -953,7 +953,7 @@ struct hblkhdr {
     word hb_descr;              /* object descriptor for marking.  See  */
                                 /* mark.h.                              */
 #   ifdef MARK_BIT_PER_GRANULE
-      short * hb_map;           /* Essentially a table of remainders    */
+      unsigned short * hb_map;  /* Essentially a table of remainders    */
                                 /* mod BYTES_TO_GRANULES(hb_sz), except */
                                 /* for large blocks.  See GC_obj_map.   */
 #   endif
@@ -1240,7 +1240,7 @@ struct _GC_arrays {
         /* number of bytes.                                             */
 # ifdef MARK_BIT_PER_GRANULE
 #   define GC_obj_map GC_arrays._obj_map
-    short * _obj_map[MAXOBJGRANULES+1];
+    unsigned short * _obj_map[MAXOBJGRANULES + 1];
                        /* If not NULL, then a pointer to a map of valid */
                        /* object addresses.                             */
                        /* _obj_map[sz_in_granules][i] is                */
index c935bf3f2cefd7bd03f8b27eca33add10d4b8965..9fdeb0afcc1f18845b14e23cd3d621590e1ed185 100644 (file)
--- a/obj_map.c
+++ b/obj_map.c
@@ -51,13 +51,13 @@ GC_INNER void GC_register_displacement_inner(size_t offset)
   GC_INNER GC_bool GC_add_map_entry(size_t granules)
   {
     unsigned displ;
-    short * new_map;
+    unsigned short * new_map;
 
     if (granules > BYTES_TO_GRANULES(MAXOBJBYTES)) granules = 0;
     if (GC_obj_map[granules] != 0) {
         return(TRUE);
     }
-    new_map = (short *)GC_scratch_alloc(MAP_LEN * sizeof(short));
+    new_map = (unsigned short *)GC_scratch_alloc(MAP_LEN * sizeof(short));
     if (new_map == 0) return(FALSE);
     GC_COND_LOG_PRINTF(
                 "Adding block map for size of %u granules (%u bytes)\n",
@@ -68,7 +68,7 @@ GC_INNER void GC_register_displacement_inner(size_t offset)
       }
     } else {
       for (displ = 0; displ < BYTES_TO_GRANULES(HBLKSIZE); displ++) {
-        new_map[displ] = (short)(displ % granules);
+        new_map[displ] = (unsigned short)(displ % granules);
       }
     }
     GC_obj_map[granules] = new_map;