1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-08 12:15:49 +00:00

okay so why exactly are we using seek instead of tell/size

This commit is contained in:
Alcaro 2017-12-28 04:07:31 +01:00
parent b933a8796b
commit c29d5906d2

View File

@ -143,7 +143,7 @@ int libretrodb_create(RFILE *fd, libretrodb_value_provider value_provider,
struct rmsgpack_dom_value item; struct rmsgpack_dom_value item;
uint64_t item_count = 0; uint64_t item_count = 0;
libretrodb_header_t header = {{0}}; libretrodb_header_t header = {{0}};
ssize_t root = filestream_seek(fd, 0, RETRO_VFS_SEEK_POSITION_CURRENT); ssize_t root = filestream_tell(fd);
memcpy(header.magic_number, MAGIC_NUMBER, sizeof(MAGIC_NUMBER)-1); memcpy(header.magic_number, MAGIC_NUMBER, sizeof(MAGIC_NUMBER)-1);
@ -230,7 +230,7 @@ int libretrodb_open(const char *path, libretrodb_t *db)
free(db->path); free(db->path);
db->path = strdup(path); db->path = strdup(path);
db->root = filestream_seek(fd, 0, RETRO_VFS_SEEK_POSITION_CURRENT); db->root = filestream_tell(fd);
if ((rv = (int)filestream_read(fd, &header, sizeof(header))) == -1) if ((rv = (int)filestream_read(fd, &header, sizeof(header))) == -1)
{ {
@ -255,8 +255,7 @@ int libretrodb_open(const char *path, libretrodb_t *db)
} }
db->count = md.count; db->count = md.count;
db->first_index_offset = filestream_seek(fd, 0, db->first_index_offset = filestream_tell(fd);
RETRO_VFS_SEEK_POSITION_CURRENT);
db->fd = fd; db->fd = fd;
return 0; return 0;
@ -269,8 +268,7 @@ error:
static int libretrodb_find_index(libretrodb_t *db, const char *index_name, static int libretrodb_find_index(libretrodb_t *db, const char *index_name,
libretrodb_index_t *idx) libretrodb_index_t *idx)
{ {
ssize_t eof = filestream_seek(db->fd, 0, ssize_t eof = filestream_get_size(db->fd);
RETRO_VFS_SEEK_POSITION_END);
ssize_t offset = filestream_seek(db->fd, ssize_t offset = filestream_seek(db->fd,
(ssize_t)db->first_index_offset, (ssize_t)db->first_index_offset,
RETRO_VFS_SEEK_POSITION_START); RETRO_VFS_SEEK_POSITION_START);
@ -282,8 +280,9 @@ static int libretrodb_find_index(libretrodb_t *db, const char *index_name,
if (strncmp(index_name, idx->name, strlen(idx->name)) == 0) if (strncmp(index_name, idx->name, strlen(idx->name)) == 0)
return 0; return 0;
offset = filestream_seek(db->fd, (ssize_t)idx->next, filestream_seek(db->fd, (ssize_t)idx->next,
RETRO_VFS_SEEK_POSITION_CURRENT); RETRO_VFS_SEEK_POSITION_CURRENT);
offset = filestream_tell(db->fd);
} }
return -1; return -1;
@ -474,8 +473,7 @@ static int node_iter(void *value, void *ctx)
static uint64_t libretrodb_tell(libretrodb_t *db) static uint64_t libretrodb_tell(libretrodb_t *db)
{ {
return filestream_seek(db->fd, 0, return filestream_tell(db->fd);
RETRO_VFS_SEEK_POSITION_CURRENT);
} }
static int node_compare(const void *a, const void *b, void *ctx) static int node_compare(const void *a, const void *b, void *ctx)
@ -490,7 +488,6 @@ int libretrodb_create_index(libretrodb_t *db,
struct rmsgpack_dom_value key; struct rmsgpack_dom_value key;
libretrodb_index_t idx; libretrodb_index_t idx;
struct rmsgpack_dom_value item; struct rmsgpack_dom_value item;
uint64_t idx_header_offset = 0;
libretrodb_cursor_t cur = {0}; libretrodb_cursor_t cur = {0};
struct rmsgpack_dom_value *field = NULL; struct rmsgpack_dom_value *field = NULL;
void *buff = NULL; void *buff = NULL;
@ -566,10 +563,7 @@ int libretrodb_create_index(libretrodb_t *db,
item_loc = libretrodb_tell(db); item_loc = libretrodb_tell(db);
} }
idx_header_offset = filestream_seek(db->fd, 0, filestream_seek(db->fd, 0, RETRO_VFS_SEEK_POSITION_END);
RETRO_VFS_SEEK_POSITION_END);
(void)idx_header_offset;
strncpy(idx.name, name, 50); strncpy(idx.name, name, 50);