diff options
-rw-r--r-- | ext/dbm/dbm.c | 7 | ||||
-rw-r--r-- | time.c | 4 |
2 files changed, 5 insertions, 6 deletions
diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 893146d582..765154c78f 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -26,7 +26,7 @@ static VALUE rb_cDBM, rb_eDBMError; #define RUBY_DBM_RW_BIT 0x20000000 struct dbmdata { - int di_size; + long di_size; DBM *di_dbm; }; @@ -212,7 +212,7 @@ fdbm_key(VALUE obj, VALUE valstr) GetDBM2(obj, dbmp, dbm); for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) { val = dbm_fetch(dbm, key); - if (val.dsize == RSTRING_LEN(valstr) && + if ((long)val.dsize == RSTRING_LEN(valstr) && memcmp(val.dptr, RSTRING_PTR(valstr), val.dsize) == 0) { return rb_tainted_str_new(key.dptr, key.dsize); } @@ -335,7 +335,8 @@ fdbm_delete_if(VALUE obj) DBM *dbm; VALUE keystr, valstr; VALUE ret, ary = rb_ary_new(); - int i, status = 0, n; + int i, status = 0; + long n; fdbm_modify(obj); GetDBM2(obj, dbmp, dbm); @@ -963,11 +963,9 @@ static const int leap_year_days_in_month[] = { static int calc_tm_yday(long tm_year, int tm_mon, int tm_mday) { - int tm_year_mod400; + int tm_year_mod400 = (int)MOD(tm_year, 400); int tm_yday = tm_mday; - tm_year_mod400 = MOD(tm_year, 400); - if (leap_year_p(tm_year_mod400 + 1900)) tm_yday += leap_year_yday_offset[tm_mon]; else |