kill RCoreFile->size

This commit is contained in:
condret 2014-09-28 00:05:20 +02:00 committed by pancake
parent 2a37539759
commit 4f70c1bf89
13 changed files with 27 additions and 39 deletions

View File

@ -558,7 +558,7 @@ if (strcmp (argv[1], "--")) {
if (seek != UT64_MAX)
r_core_seek (&r, seek, 1);
if (fullfile) r_core_block_size (&r, r.file->size);
if (fullfile) r_core_block_size (&r, r_io_desc_size (r.io, r.file->desc));
r_core_seek (&r, r.offset, 1); // read current block

View File

@ -1001,9 +1001,12 @@ static int bin_sections (RCore *r, int mode, ut64 baddr, ut64 laddr, int va, ut6
}
// H -> Header fields
if (0) {
/*
ut64 size = r_io_size (r->io);
if (size == 0)
size = r->file->size;
*/
ut64 size = r_io_desc_size (r->io, r->file->desc);
secbase >>= 16;
secbase <<= 16;
secbase = baddr; // always override?

View File

@ -538,7 +538,7 @@ static int cmd_resize(void *data, const char *input) {
st64 delta = 0;
int grow, ret;
oldsize = core->file->size;
oldsize = r_io_desc_size (core->io, core->file->desc);
switch (*input) {
case 'm':
if (input[1]==' ')
@ -579,9 +579,8 @@ static int cmd_resize(void *data, const char *input) {
grow = (newsize > oldsize);
if (grow) {
ret = r_io_resize (core->io, newsize);
if (ret<1) {
if (ret<1)
eprintf ("r_io_resize: cannot resize\n");
} else core->file->size = newsize;
}
if (delta && core->offset < newsize)
@ -589,9 +588,8 @@ static int cmd_resize(void *data, const char *input) {
if (!grow) {
ret = r_io_resize (core->io, newsize);
if (ret<1) {
if (ret<1)
eprintf ("r_io_resize: cannot resize\n");
} else core->file->size = newsize;
}
if (newsize < core->offset+core->blocksize ||

View File

@ -46,7 +46,7 @@ static void r_core_file_info (RCore *core, int mode) {
if (dbg) dbg = R_IO_WRITE | R_IO_EXEC;
if (cf->desc)
r_cons_printf (",\"fd\":%d", cf->desc->fd);
r_cons_printf (",\"size\":%"PFMT64d, cf->size);
r_cons_printf (",\"size\":%"PFMT64d, r_io_desc_size (core->io, cf->desc));
r_cons_printf (",\"mode\":\"%s\"", r_str_rwx_i (
cf->rwx | dbg));
r_cons_printf (",\"block\":%d", core->blocksize);
@ -65,7 +65,7 @@ static void r_core_file_info (RCore *core, int mode) {
r_cons_printf ("file\t%s\n", fn);
if (dbg) dbg = R_IO_WRITE | R_IO_EXEC;
r_cons_printf ("fd\t%d\n", cf->desc->fd);
r_cons_printf ("size\t0x%"PFMT64x"\n", cf->size);
r_cons_printf ("size\t0x%"PFMT64x"\n", r_io_desc_size (core->io, cf->desc));
r_cons_printf ("mode\t%s\n", r_str_rwx_i (cf->rwx | dbg));
r_cons_printf ("block\t0x%x\n", core->blocksize);
r_cons_printf ("uri\t%s\n", cf->desc->uri);

View File

@ -806,7 +806,7 @@ static int cmd_print(void *data, const char *input) {
break;
case '=': //p=
nbsz = r_num_get (core->num, *input?input[1]?input+2:input+1:input);
fsz = core->file? core->file->size: 0;
fsz = (core->file && core->io)? r_io_desc_size (core->io, core->file->desc): 0;
if (nbsz) {
nbsz = fsz / nbsz;
obsz = core->blocksize;

View File

@ -249,7 +249,7 @@ R_API void r_core_get_boundaries (RCore *core, const char *mode, ut64 *from, ut6
if (core->io->va) {
/* TODO: section size? */
} else {
*to = core->file->size;
*to = r_io_desc_size (core->io, core->file->desc);
}
}
}

View File

@ -259,7 +259,7 @@ static int cmd_seek(void *data, const char *input) {
RIOSection *s = r_io_section_vget (core->io, core->offset);
// XXX: this +2 is a hack. must fix gap between sections
if (s) r_core_seek (core, s->vaddr+s->size+2, 1);
else r_core_seek (core, core->file->size, 1);
else r_core_seek (core, r_io_desc_size (core->io, core->file->desc), 1);
}
break;
case '?': {

View File

@ -135,7 +135,7 @@ static ut64 num_callback(RNum *userptr, const char *str, int *ok) {
case 'v': return op.val; // immediate value
case 'l': return op.size;
case 'b': return core->blocksize;
case 's': return core->file->size;
case 's': return r_io_desc_size (core->io, core->file->desc);
case 'w': return r_config_get_i (core->config, "asm.bits") / 8;
case 'S':
s = r_io_section_vget (core->io, core->offset);
@ -987,7 +987,7 @@ reaccept:
if (file) {
r_core_bin_load (core, NULL, baddr);
file->map = r_io_map_add (core->io, file->desc->fd,
R_IO_READ, 0, 0, file->size);
R_IO_READ, 0, 0, r_io_desc_size (core->io, file->desc));
pipefd = core->file->desc->fd;
eprintf ("(flags: %d) len: %d filename: '%s'\n",
flg, cmd, ptr); //config.file);
@ -1147,7 +1147,7 @@ reaccept:
if (buf[0]!=2) {
r_core_seek (core, x, buf[0]);
x = core->offset;
} else x = core->file->size;
} else x = r_io_desc_size (core->io, core->file->desc);
buf[0] = RMT_SEEK | RMT_REPLY;
r_mem_copyendian (buf+1, (ut8*)&x, 8, !LE);
r_socket_write (c, buf, 9);

View File

@ -10,12 +10,6 @@ static int r_core_file_do_load_for_io_plugin (RCore *r, ut64 baseaddr, ut64 load
//static int r_core_file_do_load_for_hex (RCore *r, ut64 baddr, ut64 loadaddr, const char *filenameuri);
R_API ut64 r_core_file_resize(struct r_core_t *core, ut64 newsize) {
if (newsize==0 && core->file)
return core->file->size;
return 0LL;
}
// TODO: add support for args
R_API int r_core_file_reopen(RCore *core, const char *args, int perm) {
int isdebug = r_config_get_i (core->config, "cfg.debug");
@ -183,7 +177,7 @@ R_API char *r_core_sysenv_begin(RCore *core, const char *cmd) {
}
if (core->file && core->file->desc && core->file->desc->name) {
r_sys_setenv ("FILE", core->file->desc->name);
snprintf (buf, sizeof (buf), "%"PFMT64d, core->file->size);
snprintf (buf, sizeof (buf), "%"PFMT64d, r_io_desc_size (core->io, core->file->desc));
r_sys_setenv ("SIZE", buf);
if (strstr (cmd, "BLOCK")) {
// replace BLOCK in RET string
@ -478,11 +472,11 @@ R_API RIOMap *r_core_file_get_next_map (RCore *core, RCoreFile * fh, int mode, u
ut64 load_align = r_config_get_i (core->config, "file.loadalign");
RIOMap *map = NULL;
if (!strcmp (loadmethod, "overwrite"))
map = r_io_map_new (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size);
map = r_io_map_new (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc));
if (!strcmp (loadmethod, "fail"))
map = r_io_map_add (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size);
map = r_io_map_add (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc));
if (!strcmp (loadmethod, "append") && load_align)
map = r_io_map_add_next_available (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size, load_align);
map = r_io_map_add_next_available (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc), load_align);
if (!strcmp (suppress_warning, "false")) {
if (!map)
eprintf ("r_core_file_get_next_map: Unable to load specified file to 0x%08"PFMT64x"\n", loadaddr);
@ -539,11 +533,9 @@ R_API RCoreFile *r_core_file_open_many(RCore *r, const char *file, int mode, ut6
fh->alive = 1;
fh->core = r;
fh->desc = fd;
fh->size = r_io_desc_size (r->io, fd);
fh->rwx = mode;
r->file = fh;
r->io->plugin = fd->plugin;
fh->size = r_io_size (r->io);
// XXX - load addr should be at a set offset
fh->map = r_core_file_get_next_map (r, fh, mode, current_loadaddr);
@ -572,7 +564,7 @@ R_API RCoreFile *r_core_file_open_many(RCore *r, const char *file, int mode, ut6
if (cp && *cp) r_core_cmd (r, cp, 0);
r_config_set (r->config, "file.path", top_file->desc->name);
r_config_set_i (r->config, "zoom.to", top_file->map->from+top_file->size);
r_config_set_i (r->config, "zoom.to", top_file->map->from + r_io_desc_size (r->io, top_file->desc));
if (loadmethod) r_config_set (r->config, "file.loadmethod", loadmethod);
free (loadmethod);
@ -621,9 +613,7 @@ R_API RCoreFile *r_core_file_open(RCore *r, const char *file, int mode, ut64 loa
fh->alive = 1;
fh->core = r;
fh->desc = fd;
fh->size = r_io_desc_size (r->io, fd);
fh->rwx = mode;
fh->size = r_io_size (r->io);
cp = r_config_get (r->config, "cmd.open");
if (cp && *cp)
@ -641,7 +631,7 @@ R_API RCoreFile *r_core_file_open(RCore *r, const char *file, int mode, ut64 loa
r_bin_bind (r->bin, &(fh->binb));
r_list_append (r->files, fh);
r_core_file_set_by_file (r, fh);
r_config_set_i (r->config, "zoom.to", fh->map->from+fh->size);
r_config_set_i (r->config, "zoom.to", fh->map->from + r_io_desc_size (r->io, fh->desc));
return fh;
}
@ -801,7 +791,7 @@ R_API int r_core_hash_load(RCore *r, const char *file) {
RCoreFile *cf = r_core_file_cur (r);
limit = r_config_get_i (r->config, "cfg.hashlimit");
if (cf->size > limit)
if (r_io_desc_size (r->io, cf->desc) > limit)
return R_FALSE;
buf = (ut8*)r_file_slurp (file, &buf_len);
if (buf==NULL)

View File

@ -283,7 +283,6 @@ R_API int r_core_write_at(RCore *core, ut64 addr, const ut8 *buf, int size) {
if (addr >= core->offset && addr <= core->offset+core->blocksize)
r_core_block_read (core, 0);
}
core->file->size = r_io_size (core->io);
return (ret==-1)? R_FALSE: R_TRUE;
}
@ -298,7 +297,6 @@ R_API int r_core_extend_at(RCore *core, ut64 addr, int size) {
if (addr >= core->offset && addr <= core->offset+core->blocksize)
r_core_block_read (core, 0);
}
core->file->size = r_io_size (core->io);
return (ret==-1)? R_FALSE: R_TRUE;
}

View File

@ -1014,7 +1014,7 @@ static int r_cmd_java_handle_calc_class_sz (RCore *core, const char *cmd) {
ut64 sz = UT64_MAX;
ut64 addr = UT64_MAX;
ut64 res_size = UT64_MAX,
cur_fsz = r_core_file_cur (core)->size;
cur_fsz = r_io_desc_size (core->io, r_core_file_cur (core)->desc);
ut8 *buf = NULL;
ut32 max_size = (8096 << 16);
ut32 init_size = (1 << 16);
@ -1061,7 +1061,7 @@ static int r_cmd_java_handle_isvalid (RCore *core, const char *cmd) {
int res = R_FALSE;
ut64 res_size = UT64_MAX;
ut8 *buf = NULL;
ut32 cur_fsz = r_core_file_cur (core)->size;
ut32 cur_fsz = r_io_desc_size (core->io, r_core_file_cur (core)->desc);
ut32 max_size = (8096 << 16);
ut64 sz = UT64_MAX;
const char *p = cmd ? r_cmd_java_consumetok (cmd, ' ', -1): NULL;

View File

@ -827,15 +827,15 @@ R_API int r_core_visual_cmd(RCore *core, int ch) {
if (core->io->va) {
ut64 offset = r_io_section_get_vaddr (core->io, 0);
if (offset == UT64_MAX) {
offset = core->file->size - core->blocksize;
offset = r_io_desc_size (core->io, core->file->desc) - core->blocksize;
ret = r_core_seek (core, offset, 1);
} else {
offset += core->file->size - core->blocksize;
offset += r_io_desc_size (core->io, core->file->desc) - core->blocksize;
ret = r_core_seek (core, offset, 1);
}
} else {
ret = r_core_seek (core,
core->file->size-core->blocksize, 1);
r_io_desc_size (core->io, core->file->desc) - core->blocksize, 1);
}
if (ret != -1)
r_io_sundo_push (core->io, core->offset);

View File

@ -74,7 +74,6 @@ typedef struct r_core_log_t {
typedef struct r_core_file_t {
ut64 seek;
ut64 size;
RIOMap *map;
int rwx;
int dbg;