diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-07-06 03:34:09 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-07-06 03:34:09 -0700 |
| commit | c92ae384151a0bf9790bb1611668fa817d3c237a (patch) | |
| tree | 1f447fe27aa0e4afc98c5f25d9effaf0409d1760 /src/dump.c | |
| parent | 5b3cc4a068ffab7973c819aafd054907f7e52349 (diff) | |
| parent | cc431827e935920397f54cad2c9f27440b82e993 (diff) | |
| download | mruby-c92ae384151a0bf9790bb1611668fa817d3c237a.tar.gz mruby-c92ae384151a0bf9790bb1611668fa817d3c237a.zip | |
Merge pull request #346 from monaka/pr-cleanup-dump.c-20120706
Clean up dump.c
Diffstat (limited to 'src/dump.c')
| -rw-r--r-- | src/dump.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/dump.c b/src/dump.c index bbdd58eee..0e40cf3ed 100644 --- a/src/dump.c +++ b/src/dump.c @@ -331,6 +331,7 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) char *buf_top = buf; char *char_buf; uint16_t buf_size =0; + int len; buf_size = MRB_DUMP_DEFAULT_STR_LEN; if ((char_buf = mrb_malloc(mrb, buf_size)) == 0) @@ -384,10 +385,12 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) continue; } - buf += uint16_dump((uint16_t)strlen(char_buf), buf, type); /* data length */ + len = strlen(char_buf); - memcpy(buf, char_buf, strlen(char_buf)); - buf += strlen(char_buf); + buf += uint16_dump((uint16_t)len, buf, type); /* data length */ + + memcpy(buf, char_buf, len); + buf += len; } error_exit: @@ -600,8 +603,10 @@ dump_irep_record(mrb_state *mrb, int irep_no, FILE* fp, uint32_t *rlen) memset( buf, 0, irep_record_size); - if ((rc = write_irep_record(mrb, irep_no, buf, rlen, DUMP_TYPE_HEX)) != MRB_DUMP_OK) + if ((rc = write_irep_record(mrb, irep_no, buf, rlen, DUMP_TYPE_HEX)) != MRB_DUMP_OK) { + rc = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } if (fwrite(buf, irep_record_size, 1, fp) != 1) |
