summaryrefslogtreecommitdiffhomepage
path: root/src/symbol.c
diff options
context:
space:
mode:
authorcrimsonwoods <[email protected]>2013-12-23 00:33:07 -0800
committercrimsonwoods <[email protected]>2013-12-23 00:33:07 -0800
commit370ad6fade6a9915be2541f089ebf2e3def7bd1d (patch)
tree696d2b61b06014ceba5322074043e9d308d50fe7 /src/symbol.c
parent83c45e73d4d52b25573c90e526e6be8c087700f6 (diff)
downloadmruby-370ad6fade6a9915be2541f089ebf2e3def7bd1d.tar.gz
mruby-370ad6fade6a9915be2541f089ebf2e3def7bd1d.zip
Remove 'mrb_state' field from 'kh_xxx_t' structure.
'kh_xxx_t' requires 'mrb_state' to allocate, free, and compute hash value. But 'mrb_state' should not be held by 'kh_xxx_t' and 'mrb_state' should be supplied from outside.
Diffstat (limited to 'src/symbol.c')
-rw-r--r--src/symbol.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/symbol.c b/src/symbol.c
index 1dbc9a7bd..5ca6413c3 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -45,7 +45,7 @@ mrb_intern(mrb_state *mrb, const char *name, size_t len)
sname.len = len;
sname.name = name;
- k = kh_get(n2s, h, sname);
+ k = kh_get(n2s, mrb, h, sname);
if (k != kh_end(h))
return kh_value(h, k);
@@ -54,7 +54,7 @@ mrb_intern(mrb_state *mrb, const char *name, size_t len)
memcpy(p, name, len);
p[len] = 0;
sname.name = (const char*)p;
- k = kh_put(n2s, h, sname);
+ k = kh_put(n2s, mrb, h, sname);
kh_value(h, k) = sym;
return sym;
@@ -82,7 +82,7 @@ mrb_check_intern(mrb_state *mrb, const char *name, size_t len)
sname.len = len;
sname.name = name;
- k = kh_get(n2s, h, sname);
+ k = kh_get(n2s, mrb, h, sname);
if (k != kh_end(h)) {
return mrb_symbol_value(kh_value(h, k));
}
@@ -130,7 +130,7 @@ mrb_free_symtbl(mrb_state *mrb)
for (k = kh_begin(h); k != kh_end(h); k++)
if (kh_exist(h, k)) mrb_free(mrb, (char*)kh_key(h, k).name);
- kh_destroy(n2s,mrb->name2sym);
+ kh_destroy(n2s, mrb, mrb->name2sym);
}
void