Closed
Bug 21494
Opened 25 years ago
Closed 25 years ago
DBM Compiler Warnings Fixed
Categories
(Core Graveyard :: Tracking, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
M15
People
(Reporter: kiel, Assigned: mcafee)
References
()
Details
(Keywords: verifyme)
Here is a patch to fix the warnings generated when building files in this directory. Review and criticism and flames requested; I figured this might be an ok way to start to help out. Index: mozilla/dbm/src/h_bigkey.c =================================================================== RCS file: /cvsroot/mozilla/dbm/src/h_bigkey.c,v retrieving revision 3.5 diff -u -r3.5 h_bigkey.c --- h_bigkey.c 1999/07/15 00:17:17 3.5 +++ h_bigkey.c 1999/12/11 08:38:05 @@ -429,7 +429,7 @@ } val->size = collect_data(hashp, bufp, (int)len, set_current); - if (val->size == -1) + if (val->size + 1 == 0) // unsigned ints are not really negative return (-1); if (save_p->addr != save_addr) { /* We are pretty short on buffers. */ @@ -515,7 +515,7 @@ int set) { key->size = collect_key(hashp, bufp, 0, val, set); - if (key->size == -1) + if (key->size + 1 == 0) // same compile warning about comparing signed and unsigned return (-1); key->data = (uint8 *)hashp->tmp_key; return (0); Index: mozilla/dbm/src/h_page.c =================================================================== RCS file: /cvsroot/mozilla/dbm/src/h_page.c,v retrieving revision 3.7 diff -u -r3.7 h_page.c --- h_page.c 1999/07/15 00:58:11 3.7 +++ h_page.c 1999/12/11 08:38:07 @@ -709,7 +709,7 @@ if (!rsize) bp[0] = 0; /* We hit the EOF, so initialize a new page */ else - if (rsize != size) { + if ((unsigned)rsize != size) { errno = EFTYPE; return (-1); } @@ -750,7 +750,7 @@ * the maximum number of entries * in the array */ - if(max > (size / sizeof(uint16))) + if((unsigned)max > (size / sizeof(uint16))) return(DATABASE_CORRUPTED_ERROR); /* do the byte order swap @@ -845,7 +845,7 @@ * the maximum number of entries * in the array */ - if(max > (size / sizeof(uint16))) + if((unsigned)max > (size / sizeof(uint16))) return(DATABASE_CORRUPTED_ERROR); for (i = 0; i <= max; i++) @@ -862,7 +862,7 @@ ((wsize = write(fd, p, size)) == -1)) /* Errno is set */ return (-1); - if (wsize != size) { + if ((unsigned)wsize != size) { errno = EFTYPE; return (-1); } @@ -957,7 +957,7 @@ /* Look through all the free maps to find the first free block */ first_page = hashp->LAST_FREED >>(hashp->BSHIFT + BYTE_SHIFT); - for ( i = first_page; i <= free_page; i++ ) { + for ( i = first_page; i <= (unsigned)free_page; i++ ) { if (!(freep = (uint32 *)hashp->mapp[i]) && !(freep = fetch_bitmap(hashp, i))) return (0); @@ -966,7 +966,7 @@ else in_use_bits = (hashp->BSIZE << BYTE_SHIFT) - 1; - if (i == first_page) { + if (i == (unsigned)first_page) { bit = hashp->LAST_FREED & ((hashp->BSIZE << BYTE_SHIFT) - 1); j = bit / BITS_PER_MAP; @@ -1075,7 +1075,7 @@ hashp->LAST_FREED = bit - 1; /* Calculate the split number for this page */ - for (i = 0; (i < splitnum) && (bit > hashp->SPARES[i]); i++) {} + for (i = 0; (i < (unsigned)splitnum) && (bit > hashp->SPARES[i]); i++) {} offset = (i ? bit - hashp->SPARES[i - 1] : bit); if (offset >= SPLITMASK) return (0); /* Out of overflow pages */ @@ -1110,7 +1110,7 @@ ndx = (((uint16)addr) >> SPLITSHIFT); bit_address = (ndx ? hashp->SPARES[ndx - 1] : 0) + (addr & SPLITMASK) - 1; - if (bit_address < hashp->LAST_FREED) + if (bit_address < (unsigned)hashp->LAST_FREED) hashp->LAST_FREED = bit_address; free_page = (bit_address >> (hashp->BSHIFT + BYTE_SHIFT)); free_bit = bit_address & ((hashp->BSIZE << BYTE_SHIFT) - 1); @@ -1202,7 +1202,7 @@ static uint32 * fetch_bitmap(HTAB *hashp, uint32 ndx) { - if (ndx >= hashp->nmaps) + if (ndx >= (unsigned)hashp->nmaps) return (NULL); if ((hashp->mapp[ndx] = (uint32 *)malloc((size_t)hashp->BSIZE)) == NULL) return (NULL); Index: mozilla/dbm/src/hash.c =================================================================== RCS file: /cvsroot/mozilla/dbm/src/hash.c,v retrieving revision 3.8 diff -u -r3.8 hash.c --- hash.c 1999/07/15 00:17:18 3.8 +++ hash.c 1999/12/11 08:38:09 @@ -232,7 +232,7 @@ if (hashp->VERSION != HASHVERSION && hashp->VERSION != OLDHASHVERSION) RETURN_ERROR(EFTYPE, error1); - if (hashp->hash(CHARKEY, sizeof(CHARKEY)) != hashp->H_CHARKEY) + if (hashp->hash(CHARKEY, sizeof(CHARKEY)) != (unsigned)hashp-> H_CHARKEY) RETURN_ERROR(EFTYPE, error1); if (hashp->NKEYS < 0) { /* @@ -789,7 +789,7 @@ if (bp[1] >= REAL_KEY) { /* Real key/data pair */ - if (size == off - *bp && + if (size == (unsigned)(off - *bp) && memcmp(kp, rbufp->page + *bp, size) == 0) goto found; off = bp[1]; @@ -933,7 +933,7 @@ for (bp = NULL; !bp || !bp[0]; ) { if (!(bufp = hashp->cpage)) { for (bucket = hashp->cbucket; - bucket <= hashp->MAX_BUCKET; + bucket <= (unsigned)hashp->MAX_BUCKET; bucket++, hashp->cndx = 1) { bufp = __get_buf(hashp, bucket, NULL, 0); if (!bufp) @@ -1037,7 +1037,7 @@ hashp->OVFL_POINT = spare_ndx; } - if (new_bucket > hashp->HIGH_MASK) { + if (new_bucket > (unsigned)hashp->HIGH_MASK) { /* Starting a new doubling */ hashp->LOW_MASK = hashp->HIGH_MASK; hashp->HIGH_MASK = new_bucket | hashp->LOW_MASK; @@ -1073,7 +1073,7 @@ n = hashp->hash(k, len); bucket = n & hashp->HIGH_MASK; - if (bucket > hashp->MAX_BUCKET) + if (bucket > (unsigned)hashp->MAX_BUCKET) bucket = bucket & hashp->LOW_MASK; return (bucket); }
Sorry, that was really ugly. I missed one as well. The patch is in the url.
Updated•25 years ago
|
Assignee: chofmann → mcafee
Comment 2•25 years ago
|
||
kiel, yes, this is a great way to help out! thanks for the contribution. There are some extra steps that will help to speed the evaluation and check in of your contributions. You can "look up" the "owner(s)" of any source module/file on our LXR query tool, and assign the patch bug report directly to them. In this case the steps are goto http:lxr.mozilla.org click on project seamokey enter filename "h_bigkey.c" click on the returned link ask for cvs log or cvs blame to see the code owners... assign the bug directly to someone familiar with the code. in this case looks like mcafee might be able to help out. GREAT WORK! thanks for the contribution. chris h. http://cvs-mirror.mozilla.org/webtools/bonsai/cvslog.cgi?file=mozilla/dbm/src/h_ bigkey.c
Assignee | ||
Updated•25 years ago
|
Target Milestone: M13
Assignee | ||
Comment 3•25 years ago
|
||
I'll look at this after m12
Assignee | ||
Updated•25 years ago
|
Target Milestone: M13 → M15
Assignee | ||
Comment 4•25 years ago
|
||
cls, do we care about dbm? This is going away, right? Patch does some funny math that makes the code hard to read, not sure I'm willing to trade readability for warnings on FreeBSD-only.
Well, dbm was actually gone....for about a week. Warren & fur said that it would be needed for the netcache so I added it back to the build. I see those warnings under linux using gcc 2.95.2 as well. The patch fixes them for me and the logic looks right but I'm waiting for the rest of my tree to build before giving it the r=.
Assignee | ||
Updated•25 years ago
|
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 7•25 years ago
|
||
checked in. QA no need to verify
Updated•8 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•