summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--string.c1
-rw-r--r--thread.c8
3 files changed, 8 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index dd700e5af..9912afe81 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 8 06:27:33 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * thread.c (rb_thread_key_p): thread local storage stores ID.
+
Thu May 8 01:10:03 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* string.c (tr_trans): should squeeze properly. [ruby-dev:34587]
diff --git a/string.c b/string.c
index 703a88e28..8d4910291 100644
--- a/string.c
+++ b/string.c
@@ -4368,7 +4368,6 @@ tr_trans(VALUE str, VALUE src, VALUE repl, int sflag)
int clen, tlen, max = RSTRING_LEN(str) * 1.2;
int offset;
char *buf = ALLOC_N(char, max), *t = buf;
- VALUE v;
while (s < send) {
c0 = c = rb_enc_codepoint(s, send, enc);
diff --git a/thread.c b/thread.c
index 79c47b0f1..ff85e0f04 100644
--- a/thread.c
+++ b/thread.c
@@ -70,9 +70,9 @@ static VALUE eTerminateSignal = INT2FIX(1);
static volatile int system_working = 1;
inline static void
-st_delete_wrap(st_table * table, VALUE key)
+st_delete_wrap(st_table *table, st_data_t key)
{
- st_delete(table, (st_data_t *) & key, 0);
+ st_delete(table, &key, 0);
}
/********************************************************************************/
@@ -1522,7 +1522,7 @@ rb_thread_local_aset(VALUE thread, ID id, VALUE val)
th->local_storage = st_init_numtable();
}
if (NIL_P(val)) {
- st_delete(th->local_storage, (st_data_t *) & id, 0);
+ st_delete_wrap(th->local_storage, id);
return Qnil;
}
st_insert(th->local_storage, id, val);
@@ -1567,7 +1567,7 @@ rb_thread_key_p(VALUE self, VALUE key)
if (!th->local_storage) {
return Qfalse;
}
- if (st_lookup(th->local_storage, key, 0)) {
+ if (st_lookup(th->local_storage, id, 0)) {
return Qtrue;
}
return Qfalse;