some fixes
authorceriel <none@none>
Mon, 11 Jan 1988 18:24:34 +0000 (18:24 +0000)
committerceriel <none@none>
Mon, 11 Jan 1988 18:24:34 +0000 (18:24 +0000)
util/led/memory.c
util/led/memory.h

index 78af0db..dd94e66 100644 (file)
@@ -422,6 +422,7 @@ hard_alloc(piece, size)
                case ALLOSYMB:
                case ALLOARCH:
                case ALLOMODL:
+               case ALLORANL:
                        break;  /* Do not try to deallocate this. */
                default:
                        dealloc(i);
@@ -499,8 +500,16 @@ core_free(piece, p)
        char    *q = address(piece, mems[piece].mem_full);
 
        assert(p < q);
-       mems[piece].mem_full -= ((ind_t)q - (ind_t)p);
-       mems[piece].mem_left += ((ind_t)q - (ind_t)p);
+       switch(sizeof(unsigned) == sizeof(char *)) {
+       case 1:
+               mems[piece].mem_full -= (unsigned) (q - p);
+               mems[piece].mem_left += (unsigned) (q - p);
+               break;
+       default:
+               mems[piece].mem_full -= (ind_t) q - (ind_t) p;
+               mems[piece].mem_left += (ind_t) q - (ind_t) p;
+               break;
+       }
 }
 
 /*
index 6159538..7617835 100644 (file)
 #define ALLORANL       (ALLOMODL + 1)          /* Ranlib information. */
 #define NMEMS          (ALLORANL + 1)
 
-typedef long           ind_t;
 #define BADOFF         ((ind_t)-1)
 
+typedef long           ind_t;
+
 struct memory {
        char    *mem_base;
        ind_t   mem_full;