diff --git a/ChangeLog b/ChangeLog index eeca7e41f7..b5df0cd2d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Nov 13 23:47:29 2011 Nobuyoshi Nakada + + * ext/dbm/extconf.rb: use convertible_int. + Sun Nov 13 23:45:57 2011 Nobuyoshi Nakada * lib/mkmf.rb (checking_for): should not modify the result. diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 1850b28c2f..3409d8faa0 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -21,12 +21,11 @@ #include #include -#if SIZEOF_DSIZE > SIZEOF_INT -# define DSIZE_TYPE long +#define DSIZE_TYPE TYPEOF_DATUM_DSIZE +#if SIZEOF_DATUM_DSIZE > SIZEOF_INT # define RSTRING_DSIZE(s) RSTRING_LEN(s) # define TOO_LONG(n) 0 #else -# define DSIZE_TYPE int # define RSTRING_DSIZE(s) RSTRING_LENINT(s) # define TOO_LONG(n) ((long)(+(DSIZE_TYPE)(n)) != (n)) #endif diff --git a/ext/dbm/extconf.rb b/ext/dbm/extconf.rb index c3ebe898f4..da20c5681a 100644 --- a/ext/dbm/extconf.rb +++ b/ext/dbm/extconf.rb @@ -71,12 +71,6 @@ if dblib.any? {|db| headers.fetch(db, ["ndbm.h"]).any? {|hdr| headers.db_check(d have_header("sys/cdefs.h") have_func("dbm_pagfno((DBM *)0)", headers.found, headers.defs) have_func("dbm_dirfno((DBM *)0)", headers.found, headers.defs) - type = checking_for "sizeof(datum.dsize)", STRING_OR_FAILED_FORMAT do - pre = headers.found + [["static datum conftest_key;"]] - %w[int long LONG_LONG].find do |t| - try_static_assert("sizeof(conftest_key.dsize) <= sizeof(#{t})", pre, headers.defs) - end - end - $defs << "-DSIZEOF_DSIZE=SIZEOF_"+type.tr_cpp if type + convertible_int("datum.dsize", headers.found, headers.defs) create_makefile("dbm") end