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
•