mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
dump.c: adjust local variable declarations
This commit is contained in:
+33
-61
@@ -97,13 +97,10 @@ dump_float(mrb_state *mrb, uint8_t *buf, mrb_float f)
|
||||
static size_t
|
||||
get_pool_block_size(mrb_state *mrb, const mrb_irep *irep)
|
||||
{
|
||||
int pool_no;
|
||||
size_t size = 0;
|
||||
|
||||
size += sizeof(uint16_t); /* plen */
|
||||
size_t size = sizeof(uint16_t); /* plen */
|
||||
size += irep->plen * sizeof(uint8_t); /* len(n) */
|
||||
|
||||
for (pool_no = 0; pool_no < irep->plen; pool_no++) {
|
||||
for (int pool_no = 0; pool_no < irep->plen; pool_no++) {
|
||||
int ai = mrb_gc_arena_save(mrb);
|
||||
|
||||
switch (irep->pool[pool_no].tt) {
|
||||
@@ -159,14 +156,13 @@ get_pool_block_size(mrb_state *mrb, const mrb_irep *irep)
|
||||
static ptrdiff_t
|
||||
write_pool_block(mrb_state *mrb, const mrb_irep *irep, uint8_t *buf)
|
||||
{
|
||||
int pool_no;
|
||||
uint8_t *cur = buf;
|
||||
mrb_int len;
|
||||
const char *ptr;
|
||||
|
||||
cur += uint16_to_bin(irep->plen, cur); /* number of pool */
|
||||
|
||||
for (pool_no = 0; pool_no < irep->plen; pool_no++) {
|
||||
for (int pool_no = 0; pool_no < irep->plen; pool_no++) {
|
||||
int ai = mrb_gc_arena_save(mrb);
|
||||
|
||||
switch (irep->pool[pool_no].tt) {
|
||||
@@ -249,17 +245,14 @@ get_syms_block_size(mrb_state *mrb, const mrb_irep *irep)
|
||||
static ptrdiff_t
|
||||
write_syms_block(mrb_state *mrb, const mrb_irep *irep, uint8_t *buf)
|
||||
{
|
||||
int sym_no;
|
||||
uint8_t *cur = buf;
|
||||
const char *name;
|
||||
|
||||
cur += uint16_to_bin(irep->slen, cur); /* number of symbol */
|
||||
|
||||
for (sym_no = 0; sym_no < irep->slen; sym_no++) {
|
||||
for (int sym_no = 0; sym_no < irep->slen; sym_no++) {
|
||||
if (irep->syms[sym_no] != 0) {
|
||||
mrb_int len;
|
||||
|
||||
name = mrb_sym_name_len(mrb, irep->syms[sym_no], &len);
|
||||
const char *name = mrb_sym_name_len(mrb, irep->syms[sym_no], &len);
|
||||
|
||||
mrb_assert_int_fit(mrb_int, len, uint16_t, UINT16_MAX);
|
||||
cur += uint16_to_bin((uint16_t)len, cur); /* length of symbol name */
|
||||
@@ -278,9 +271,7 @@ write_syms_block(mrb_state *mrb, const mrb_irep *irep, uint8_t *buf)
|
||||
static size_t
|
||||
get_irep_record_size_1(mrb_state *mrb, const mrb_irep *irep)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += get_irep_header_size(mrb);
|
||||
size_t size = get_irep_header_size(mrb);
|
||||
size += get_iseq_block_size(mrb, irep);
|
||||
size += get_pool_block_size(mrb, irep);
|
||||
size += get_syms_block_size(mrb, irep);
|
||||
@@ -290,9 +281,8 @@ get_irep_record_size_1(mrb_state *mrb, const mrb_irep *irep)
|
||||
static size_t
|
||||
get_irep_record_size(mrb_state *mrb, const mrb_irep *irep)
|
||||
{
|
||||
size_t size = 0;
|
||||
size_t size = get_irep_record_size_1(mrb, irep);
|
||||
|
||||
size = get_irep_record_size_1(mrb, irep);
|
||||
for (int irep_no = 0; irep_no < irep->rlen; irep_no++) {
|
||||
size += get_irep_record_size(mrb, irep->reps[irep_no]);
|
||||
}
|
||||
@@ -357,8 +347,6 @@ write_section_irep_header(mrb_state *mrb, size_t section_size, uint8_t *bin)
|
||||
static int
|
||||
write_section_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, size_t *len_p, uint8_t flags)
|
||||
{
|
||||
int result;
|
||||
size_t rsize = 0;
|
||||
uint8_t *cur = bin;
|
||||
|
||||
if (mrb == NULL || bin == NULL) {
|
||||
@@ -367,7 +355,8 @@ write_section_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, size_t *l
|
||||
|
||||
cur += sizeof(struct rite_section_irep_header);
|
||||
|
||||
result = write_irep_record(mrb, irep, cur, &rsize, flags);
|
||||
size_t rsize = 0;
|
||||
int result = write_irep_record(mrb, irep, cur, &rsize, flags);
|
||||
if (result != MRB_DUMP_OK) {
|
||||
return result;
|
||||
}
|
||||
@@ -381,13 +370,10 @@ write_section_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, size_t *l
|
||||
static size_t
|
||||
get_debug_record_size(mrb_state *mrb, const mrb_irep *irep)
|
||||
{
|
||||
size_t ret = 0;
|
||||
uint16_t f_idx;
|
||||
|
||||
ret += sizeof(uint32_t); /* record size */
|
||||
size_t ret = sizeof(uint32_t); /* record size */
|
||||
ret += sizeof(uint16_t); /* file count */
|
||||
|
||||
for (f_idx = 0; f_idx < irep->debug_info->flen; ++f_idx) {
|
||||
for (uint16_t f_idx = 0; f_idx < irep->debug_info->flen; ++f_idx) {
|
||||
mrb_irep_debug_info_file const* file = irep->debug_info->files[f_idx];
|
||||
|
||||
ret += sizeof(uint32_t); /* position */
|
||||
@@ -462,7 +448,6 @@ static size_t
|
||||
write_debug_record_1(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, mrb_sym const* filenames, uint16_t filenames_len)
|
||||
{
|
||||
uint8_t *cur;
|
||||
ptrdiff_t ret;
|
||||
|
||||
cur = bin + sizeof(uint32_t); /* skip record size */
|
||||
cur += uint16_to_bin(irep->debug_info->flen, cur); /* file count */
|
||||
@@ -508,7 +493,7 @@ write_debug_record_1(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, mrb_sym
|
||||
}
|
||||
}
|
||||
|
||||
ret = cur - bin;
|
||||
ptrdiff_t ret = cur - bin;
|
||||
mrb_assert_int_fit(ptrdiff_t, ret, uint32_t, UINT32_MAX);
|
||||
uint32_to_bin((uint32_t)ret, bin);
|
||||
|
||||
@@ -535,18 +520,15 @@ write_debug_record(mrb_state *mrb, const mrb_irep *irep, uint8_t *bin, mrb_sym c
|
||||
static int
|
||||
write_section_debug(mrb_state *mrb, const mrb_irep *irep, uint8_t *cur, mrb_sym const *filenames, uint16_t filenames_len)
|
||||
{
|
||||
size_t section_size = 0;
|
||||
const uint8_t *bin = cur;
|
||||
struct rite_section_debug_header *header;
|
||||
size_t dlen;
|
||||
|
||||
if (mrb == NULL || cur == NULL) {
|
||||
return MRB_DUMP_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
header = (struct rite_section_debug_header*)bin;
|
||||
cur += sizeof(struct rite_section_debug_header);
|
||||
section_size += sizeof(struct rite_section_debug_header);
|
||||
struct rite_section_debug_header *header = (struct rite_section_debug_header*)bin;
|
||||
size_t section_size = sizeof(struct rite_section_debug_header);
|
||||
cur += section_size;
|
||||
|
||||
/* filename table */
|
||||
cur += uint16_to_bin(filenames_len, cur);
|
||||
@@ -564,7 +546,7 @@ write_section_debug(mrb_state *mrb, const mrb_irep *irep, uint8_t *cur, mrb_sym
|
||||
}
|
||||
|
||||
/* debug records */
|
||||
dlen = write_debug_record(mrb, irep, cur, filenames, filenames_len);
|
||||
size_t dlen = write_debug_record(mrb, irep, cur, filenames, filenames_len);
|
||||
section_size += dlen;
|
||||
|
||||
memcpy(header->section_ident, RITE_SECTION_DEBUG_IDENT, sizeof(header->section_ident));
|
||||
@@ -600,13 +582,12 @@ static int
|
||||
write_lv_sym_table(mrb_state *mrb, uint8_t **start, mrb_sym const *syms, uint32_t syms_len)
|
||||
{
|
||||
uint8_t *cur = *start;
|
||||
const char *str;
|
||||
mrb_int str_len;
|
||||
|
||||
cur += uint32_to_bin(syms_len, cur);
|
||||
|
||||
for (uint32_t i = 0; i < syms_len; i++) {
|
||||
str = mrb_sym_name_len(mrb, syms[i], &str_len);
|
||||
mrb_int str_len;
|
||||
const char *str = mrb_sym_name_len(mrb, syms[i], &str_len);
|
||||
cur += uint16_to_bin((uint16_t)str_len, cur);
|
||||
memcpy(cur, str, str_len);
|
||||
cur += str_len;
|
||||
@@ -675,34 +656,30 @@ static int
|
||||
write_section_lv(mrb_state *mrb, const mrb_irep *irep, uint8_t *start, mrb_sym const *syms, uint32_t const syms_len)
|
||||
{
|
||||
uint8_t *cur = start;
|
||||
struct rite_section_lv_header *header;
|
||||
ptrdiff_t diff;
|
||||
int result = MRB_DUMP_OK;
|
||||
|
||||
if (mrb == NULL || cur == NULL) {
|
||||
return MRB_DUMP_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
header = (struct rite_section_lv_header*)cur;
|
||||
struct rite_section_lv_header *header = (struct rite_section_lv_header*)cur;
|
||||
cur += sizeof(struct rite_section_lv_header);
|
||||
|
||||
result = write_lv_sym_table(mrb, &cur, syms, syms_len);
|
||||
int result = write_lv_sym_table(mrb, &cur, syms, syms_len);
|
||||
if (result != MRB_DUMP_OK) {
|
||||
goto lv_section_exit;
|
||||
return result;
|
||||
}
|
||||
|
||||
result = write_lv_record(mrb, irep, &cur, syms, syms_len);
|
||||
if (result != MRB_DUMP_OK) {
|
||||
goto lv_section_exit;
|
||||
return result;
|
||||
}
|
||||
|
||||
memcpy(header->section_ident, RITE_SECTION_LV_IDENT, sizeof(header->section_ident));
|
||||
|
||||
diff = cur - start;
|
||||
ptrdiff_t diff = cur - start;
|
||||
mrb_assert_int_fit(ptrdiff_t, diff, size_t, SIZE_MAX);
|
||||
uint32_to_bin((uint32_t)diff, header->section_size);
|
||||
|
||||
lv_section_exit:
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -726,7 +703,7 @@ static mrb_bool
|
||||
debug_info_defined_p(const mrb_irep *irep)
|
||||
{
|
||||
if (!irep->debug_info) return FALSE;
|
||||
for (int i=0; i<irep->rlen; i++) {
|
||||
for (int i = 0; i < irep->rlen; i++) {
|
||||
if (!debug_info_defined_p(irep->reps[i])) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -747,9 +724,6 @@ lv_defined_p(const mrb_irep *irep)
|
||||
int
|
||||
mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, uint8_t **bin, size_t *bin_size)
|
||||
{
|
||||
int result = MRB_DUMP_GENERAL_FAILURE;
|
||||
size_t malloc_size;
|
||||
size_t section_irep_size;
|
||||
size_t section_lineno_size = 0, section_lv_size = 0;
|
||||
uint8_t *cur = NULL;
|
||||
mrb_bool const debug_info_defined = debug_info_defined_p(irep), lv_defined = lv_defined_p(irep);
|
||||
@@ -761,7 +735,7 @@ mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, uint8_t **bin
|
||||
return MRB_DUMP_GENERAL_FAILURE;
|
||||
}
|
||||
|
||||
section_irep_size = sizeof(struct rite_section_irep_header);
|
||||
size_t section_irep_size = sizeof(struct rite_section_irep_header);
|
||||
section_irep_size += get_irep_record_size(mrb, irep);
|
||||
|
||||
/* DEBUG section size */
|
||||
@@ -785,13 +759,13 @@ mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, uint8_t **bin
|
||||
section_lv_size += get_lv_section_size(mrb, irep, lv_syms, lv_syms_len);
|
||||
}
|
||||
|
||||
malloc_size = sizeof(struct rite_binary_header) +
|
||||
section_irep_size + section_lineno_size + section_lv_size +
|
||||
sizeof(struct rite_binary_footer);
|
||||
size_t malloc_size = sizeof(struct rite_binary_header) +
|
||||
section_irep_size + section_lineno_size + section_lv_size +
|
||||
sizeof(struct rite_binary_footer);
|
||||
cur = *bin = (uint8_t*)mrb_malloc(mrb, malloc_size);
|
||||
cur += sizeof(struct rite_binary_header);
|
||||
|
||||
result = write_section_irep(mrb, irep, cur, §ion_irep_size, flags);
|
||||
int result = write_section_irep(mrb, irep, cur, §ion_irep_size, flags);
|
||||
if (result != MRB_DUMP_OK) {
|
||||
goto error_exit;
|
||||
}
|
||||
@@ -838,14 +812,13 @@ int
|
||||
mrb_dump_irep_binary(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE* fp)
|
||||
{
|
||||
uint8_t *bin = NULL;
|
||||
size_t bin_size = 0;
|
||||
int result;
|
||||
|
||||
if (fp == NULL) {
|
||||
return MRB_DUMP_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
result = mrb_dump_irep(mrb, irep, flags, &bin, &bin_size);
|
||||
size_t bin_size;
|
||||
int result = mrb_dump_irep(mrb, irep, flags, &bin, &bin_size);
|
||||
if (result == MRB_DUMP_OK) {
|
||||
if (fwrite(bin, sizeof(bin[0]), bin_size, fp) != bin_size) {
|
||||
result = MRB_DUMP_WRITE_FAULT;
|
||||
@@ -860,13 +833,12 @@ int
|
||||
mrb_dump_irep_cfunc(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *fp, const char *initname)
|
||||
{
|
||||
uint8_t *bin = NULL;
|
||||
size_t bin_size = 0, bin_idx = 0;
|
||||
int result;
|
||||
|
||||
if (fp == NULL || initname == NULL || initname[0] == '\0') {
|
||||
return MRB_DUMP_INVALID_ARGUMENT;
|
||||
}
|
||||
result = mrb_dump_irep(mrb, irep, flags, &bin, &bin_size);
|
||||
size_t bin_size, bin_idx = 0;
|
||||
int result = mrb_dump_irep(mrb, irep, flags, &bin, &bin_size);
|
||||
if (result == MRB_DUMP_OK) {
|
||||
if (fprintf(fp, "#include <stdint.h>\n") < 0) { /* for uint8_t under at least Darwin */
|
||||
mrb_free(mrb, bin);
|
||||
|
||||
Reference in New Issue
Block a user