mesa: make mm.c use unsigned ints for offsets.
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 17 Jun 2008 16:11:53 +0000 (10:11 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 17 Jun 2008 16:11:53 +0000 (10:11 -0600)
If you have a GPU using this code and it has the offsets up in this space,
this fails.

cherry-picked from master

src/mesa/main/mm.c
src/mesa/main/mm.h

index 846c329c70d96233ab9d03495439e848c949aebf..fb7809ed221427622d676474431d515842f7f893 100644 (file)
@@ -53,7 +53,7 @@ mmDumpMemInfo(const struct mem_block *heap)
 }
 
 struct mem_block *
-mmInit(int ofs, int size)
+mmInit(unsigned int ofs, int size)
 {
    struct mem_block *heap, *block;
   
@@ -91,7 +91,7 @@ mmInit(int ofs, int size)
 
 static struct mem_block *
 SliceBlock(struct mem_block *p, 
-           int startofs, int size, 
+           unsigned int startofs, int size, 
            int reserved, int alignment)
 {
    struct mem_block *newblock;
@@ -164,8 +164,8 @@ mmAllocMem(struct mem_block *heap, int size, int align2, int startSearch)
 {
    struct mem_block *p;
    const int mask = (1 << align2)-1;
-   int startofs = 0;
-   int endofs;
+   unsigned int startofs = 0;
+   unsigned int endofs;
 
    if (!heap || align2 < 0 || size <= 0)
       return NULL;
index 26d59fff1391e4ae28c7def1f48e6a03936eb7f4..5ad3ffd6d15e0e7087cdc18a573b346b73ff669c 100644 (file)
@@ -39,7 +39,8 @@ struct mem_block {
    struct mem_block *next, *prev;
    struct mem_block *next_free, *prev_free;
    struct mem_block *heap;
-   int ofs,size;
+   unsigned int ofs;
+   int size;
    unsigned int free:1;
    unsigned int reserved:1;
 };
@@ -50,7 +51,7 @@ struct mem_block {
  * input: total size in bytes
  * return: a heap pointer if OK, NULL if error
  */
-extern struct mem_block *mmInit(int ofs, int size);
+extern struct mem_block *mmInit(unsigned int ofs, int size);
 
 /**
  * Allocate 'size' bytes with 2^align2 bytes alignment,