[#30872] segv when reentering into Fiber with callcc — sheepman <sheepman@...>
こんばんは、sheepman です。
ささだです。
遠藤と申します。
ささだです。
遠藤です。
ささだです。
まつもと ゆきひろです
In article <E1Hw9be-0002Rs-Qg@x31>,
まつもと ゆきひろです
[#30920] Integer#prime_division と Prime — TOYOFUKU Chikanobu <nobu_toyofuku@...>
豊福です。
[#30929] secrand.rb — "NAKAMURA, Hiroshi" <nakahiro@...>
-----BEGIN PGP SIGNED MESSAGE-----
In article <4669066C.2080307@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <46694461.4060706@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <46697C0B.8060402@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <4669DAB0.4050705@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <466AA73C.9030407@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
なかだです。
-----BEGIN PGP SIGNED MESSAGE-----
In article <466D5B1D.8030205@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <469253E9.9010203@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
In article <4694338C.7090303@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <4694E6A6.2060303@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
なかだです。
-----BEGIN PGP SIGNED MESSAGE-----
なかだです。
-----BEGIN PGP SIGNED MESSAGE-----
[#30971] Linux/ia64で'ucontext_t' undeclared — akira yamada / やまだあきら <akira@...>
最近のRuby 1.9をLinux/ia64上でmakeしようとすると
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
In article <E1HygwQ-0001OA-4f@x31>,
ささだです。
[#30996] new block parameter rule — SASADA Koichi <ko1@...>
ささだです。
[#31002] ("a".."f").step(2) {|x| p x} — Tanaka Akira <akr@...>
string の range の step で引数が効かないように思います。
まつもと ゆきひろです
ささだです。
まつもと ゆきひろです
[#31028] rb_get_interned — Nobuyoshi Nakada <nobu@...>
なかだです。
[#31034] Re: [ruby-cvs:19815] Ruby:r12579 (trunk): * parse.y (rb_intern2): name may not be NUL-terminated. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#31046] Conditional jump or move depends on uninitialised value(s) in TOPLEVEL_BINDING — Tanaka Akira <akr@...>
valgrind をかけたところとりあえず最初のが
ささだです。
[#31063] make error at bcc32 — "Nebata" <tnebata@...>
ねばたです。
[#31066] consts for gdb support — Nobuyoshi Nakada <nobu@...>
なかだです。
[#31068] $&;[] dumps core — "Yusuke ENDOH" <mame@...>
遠藤と申します。
ささだです。
遠藤です。
ささだです。
遠藤です。
[#31072] {*0} dumps core — "Yusuke ENDOH" <mame@...>
遠藤と申します。
ささだです。
[ruby-dev:31034] Re: [ruby-cvs:19815] Ruby:r12579 (trunk): * parse.y (rb_intern2): name may not be NUL-terminated.
こんにちは、なかむら(う)です。
In message "[ruby-cvs:19815] Ruby:r12579 (trunk): * parse.y (rb_intern2): name may not be NUL-terminated."
on Jun.21,2007 17:12:32, <nobu@ruby-lang.org> wrote:
| Log:
| * parse.y (rb_intern2): name may not be NUL-terminated.
mをnameと関係ないポインタに変えていますが、後ろの方のwhileル
ープでmとname + lastを比較してるので正常に動作しなくなってい
ます。
その部分を直したのと、あとついでにmを取得した後はnameをもう見
ないようにしてみました。
Index: parse.y
===================================================================
--- parse.y (revision 12580)
+++ parse.y (working copy)
@@ -8421,7 +8421,7 @@ ID
rb_intern2(const char *name, long len)
{
VALUE str = rb_str_new(name, len);
- const char *m = RSTRING_PTR(str);
+ const char *m = RSTRING_PTR(str), *end;
ID id;
int last;
@@ -8429,46 +8429,46 @@ rb_intern2(const char *name, long len)
return id;
last = len-1;
+ end = m + last;
id = 0;
- switch (*name) {
+ switch (*m) {
case '$':
id |= ID_GLOBAL;
if (is_special_global_name(++m)) goto new_id;
break;
case '@':
- if (name[1] == '@') {
+ if (*++m == '@') {
m++;
id |= ID_CLASS;
}
else {
id |= ID_INSTANCE;
}
- m++;
break;
default:
- if (name[0] != '_' && ISASCII(name[0]) && !ISALNUM(name[0])) {
+ if (*m != '_' && ISASCII(*m) && !ISALNUM(*m)) {
/* operators */
int i;
for (i=0; op_tbl[i].token; i++) {
- if (*op_tbl[i].name == *name &&
- strcmp(op_tbl[i].name, name) == 0) {
+ if (*op_tbl[i].name == *m &&
+ strcmp(op_tbl[i].name, m) == 0) {
id = op_tbl[i].token;
goto id_register;
}
}
}
- if (name[last] == '=') {
+ if (*end == '=') {
/* attribute assignment */
- id = rb_intern2(name, last);
+ id = rb_intern2(m, last);
if (id > tLAST_TOKEN && !is_attrset_id(id)) {
id = rb_id_attrset(id);
goto id_register;
}
id = ID_ATTRSET;
}
- else if (ISUPPER(name[0])) {
+ else if (ISUPPER(*m)) {
id = ID_CONST;
}
else {
@@ -8477,7 +8477,7 @@ rb_intern2(const char *name, long len)
break;
}
if (!ISDIGIT(*m)) {
- while (m <= name + last && is_identchar(*m)) {
+ while (m <= end && is_identchar(*m)) {
m += mbclen(*m);
}
}
それでは。
--
U.Nakamura <usa@garbagecollect.jp>