diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-06-21 16:22:29 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-06-21 16:22:29 +0900 |
| commit | a70c4e0c790b9ddb4dbca143cffa585b3841b9f6 (patch) | |
| tree | 1cbbe65814a65c8969b1337bdb0fadae32b85e70 /src/dump.c | |
| parent | d105ea496f686b6ef3071e127864fab4677befac (diff) | |
| download | mruby-a70c4e0c790b9ddb4dbca143cffa585b3841b9f6.tar.gz mruby-a70c4e0c790b9ddb4dbca143cffa585b3841b9f6.zip | |
reduce calling of strlen(); #301
Diffstat (limited to 'src/dump.c')
| -rw-r--r-- | src/dump.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dump.c b/src/dump.c index daf2868f1..e1ebe2027 100644 --- a/src/dump.c +++ b/src/dump.c @@ -415,15 +415,17 @@ write_syms_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) uint16_t nlen =0; if (irep->syms[sym_no] != 0) { - name = mrb_sym2name(mrb, irep->syms[sym_no]); - nlen = str_dump_len((char*)name, strlen(name), type); + int len; + + name = mrb_sym2name(mrb, irep->syms[sym_no], &len); + nlen = str_dump_len((char*)name, len, type); if ( nlen > buf_size - 1) { buf_size = nlen + 1; if ((char_buf = mrb_realloc(mrb, char_buf, buf_size)) == 0) goto error_exit; } memset(char_buf, 0, buf_size); - str_dump((char*)name, char_buf, strlen(name), type); + str_dump((char*)name, char_buf, len, type); buf += uint16_dump(nlen, buf, type); /* length of symbol name */ memcpy(buf, char_buf, nlen); /* symbol name */ |
