Make opt_narenas unsigned rather than size_t.
diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
index 0ced0aa..28b5fb7 100644
--- a/doc/jemalloc.xml.in
+++ b/doc/jemalloc.xml.in
@@ -941,7 +941,7 @@
<varlistentry id="opt.narenas">
<term>
<mallctl>opt.narenas</mallctl>
- (<type>size_t</type>)
+ (<type>unsigned</type>)
<literal>r-</literal>
</term>
<listitem><para>Maximum number of arenas to use for automatic
diff --git a/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in
index 0260b9a..a61a13a 100644
--- a/include/jemalloc/internal/jemalloc_internal.h.in
+++ b/include/jemalloc/internal/jemalloc_internal.h.in
@@ -433,7 +433,7 @@
extern bool opt_utrace;
extern bool opt_xmalloc;
extern bool opt_zero;
-extern size_t opt_narenas;
+extern unsigned opt_narenas;
extern bool in_valgrind;
diff --git a/src/ctl.c b/src/ctl.c
index a7f1b67..e004433 100644
--- a/src/ctl.c
+++ b/src/ctl.c
@@ -1277,7 +1277,7 @@
CTL_RO_NL_GEN(opt_abort, opt_abort, bool)
CTL_RO_NL_GEN(opt_dss, opt_dss, const char *)
CTL_RO_NL_GEN(opt_lg_chunk, opt_lg_chunk, size_t)
-CTL_RO_NL_GEN(opt_narenas, opt_narenas, size_t)
+CTL_RO_NL_GEN(opt_narenas, opt_narenas, unsigned)
CTL_RO_NL_GEN(opt_purge, purge_mode_names[opt_purge], const char *)
CTL_RO_NL_GEN(opt_lg_dirty_mult, opt_lg_dirty_mult, ssize_t)
CTL_RO_NL_GEN(opt_decay_time, opt_decay_time, ssize_t)
diff --git a/src/jemalloc.c b/src/jemalloc.c
index 76b4f15..3d356c3 100644
--- a/src/jemalloc.c
+++ b/src/jemalloc.c
@@ -40,7 +40,7 @@
bool opt_utrace = false;
bool opt_xmalloc = false;
bool opt_zero = false;
-size_t opt_narenas = 0;
+unsigned opt_narenas = 0;
/* Initialized to true if the process is running inside Valgrind. */
bool in_valgrind;
@@ -1031,7 +1031,7 @@
if (cont) \
continue; \
}
-#define CONF_HANDLE_SIZE_T(o, n, min, max, clip) \
+#define CONF_HANDLE_T_U(t, o, n, min, max, clip) \
if (CONF_MATCH(n)) { \
uintmax_t um; \
char *end; \
@@ -1045,11 +1045,11 @@
k, klen, v, vlen); \
} else if (clip) { \
if ((min) != 0 && um < (min)) \
- o = (min); \
+ o = (t)(min); \
else if (um > (max)) \
- o = (max); \
+ o = (t)(max); \
else \
- o = um; \
+ o = (t)um; \
} else { \
if (((min) != 0 && um < (min)) \
|| um > (max)) { \
@@ -1058,10 +1058,14 @@
"conf value", \
k, klen, v, vlen); \
} else \
- o = um; \
+ o = (t)um; \
} \
continue; \
}
+#define CONF_HANDLE_UNSIGNED(o, n, min, max, clip) \
+ CONF_HANDLE_T_U(unsigned, o, n, min, max, clip)
+#define CONF_HANDLE_SIZE_T(o, n, min, max, clip) \
+ CONF_HANDLE_T_U(size_t, o, n, min, max, clip)
#define CONF_HANDLE_SSIZE_T(o, n, min, max) \
if (CONF_MATCH(n)) { \
long l; \
@@ -1129,8 +1133,8 @@
}
continue;
}
- CONF_HANDLE_SIZE_T(opt_narenas, "narenas", 1,
- SIZE_T_MAX, false)
+ CONF_HANDLE_UNSIGNED(opt_narenas, "narenas", 1,
+ UINT_MAX, false)
if (strncmp("purge", k, klen) == 0) {
int i;
bool match = false;
diff --git a/src/stats.c b/src/stats.c
index 8d5ed71..a724947 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -435,9 +435,10 @@
bool bv;
unsigned uv;
ssize_t ssv;
- size_t sv, bsz, ssz, sssz, cpsz;
+ size_t sv, bsz, usz, ssz, sssz, cpsz;
bsz = sizeof(bool);
+ usz = sizeof(unsigned);
ssz = sizeof(size_t);
sssz = sizeof(ssize_t);
cpsz = sizeof(const char *);
@@ -464,6 +465,11 @@
: "false", bv2 ? "true" : "false"); \
} \
}
+#define OPT_WRITE_UNSIGNED(n) \
+ if (je_mallctl("opt."#n, &uv, &usz, NULL, 0) == 0) { \
+ malloc_cprintf(write_cb, cbopaque, \
+ " opt."#n": %zu\n", sv); \
+ }
#define OPT_WRITE_SIZE_T(n) \
if (je_mallctl("opt."#n, &sv, &ssz, NULL, 0) == 0) { \
malloc_cprintf(write_cb, cbopaque, \
@@ -494,7 +500,7 @@
OPT_WRITE_BOOL(abort)
OPT_WRITE_SIZE_T(lg_chunk)
OPT_WRITE_CHAR_P(dss)
- OPT_WRITE_SIZE_T(narenas)
+ OPT_WRITE_UNSIGNED(narenas)
OPT_WRITE_CHAR_P(purge)
if (opt_purge == purge_mode_ratio) {
OPT_WRITE_SSIZE_T_MUTABLE(lg_dirty_mult,
diff --git a/test/unit/mallctl.c b/test/unit/mallctl.c
index e8dc492..0133351 100644
--- a/test/unit/mallctl.c
+++ b/test/unit/mallctl.c
@@ -163,7 +163,7 @@
TEST_MALLCTL_OPT(bool, abort, always);
TEST_MALLCTL_OPT(size_t, lg_chunk, always);
TEST_MALLCTL_OPT(const char *, dss, always);
- TEST_MALLCTL_OPT(size_t, narenas, always);
+ TEST_MALLCTL_OPT(unsigned, narenas, always);
TEST_MALLCTL_OPT(const char *, purge, always);
TEST_MALLCTL_OPT(ssize_t, lg_dirty_mult, always);
TEST_MALLCTL_OPT(ssize_t, decay_time, always);