Browse Source

add 'max_len' parameter to arenaCopyCStr()

main
cinnaboot 5 years ago
parent
commit
f17b7a5bf4
  1. 10
      src/asset.cpp
  2. 5
      src/asset.h

10
src/asset.cpp

@ -70,12 +70,11 @@ arenaAllocateBlock(memory_arena* arena, size_t block_size)
return ret; return ret;
} }
#define MAX_NAME_LENGTH 256
char* char*
arenaCopyCStr(memory_arena* arena, const char* input) arenaCopyCStr(memory_arena* arena, const char* input, u32 max_len)
{ {
u32 name_len = std::strlen(input) + 1; u32 name_len = std::strlen(input) + 1;
assert(name_len < MAX_NAME_LENGTH); assert(name_len < max_len);
// TODO: make an arena alloc macro // TODO: make an arena alloc macro
char* out = (char*) arenaAllocateBlock(arena, name_len); char* out = (char*) arenaAllocateBlock(arena, name_len);
std::strncpy(out, input, name_len); std::strncpy(out, input, name_len);
@ -207,10 +206,7 @@ initModel(Assets* assets,
uint buf_count = t_mdl.bufferViews.size(); uint buf_count = t_mdl.bufferViews.size();
mdl->meshes = (mesh*) arenaAllocateBlock(arena, buf_count * sizeof(mesh)); mdl->meshes = (mesh*) arenaAllocateBlock(arena, buf_count * sizeof(mesh));
mdl->num_meshes = t_mdl.meshes.size(); mdl->num_meshes = t_mdl.meshes.size();
uint name_len = std::strlen(filename); mdl->filepath = arenaCopyCStr(arena, filename, MAX_PATH_SIZE);
assert(name_len < MAX_PATH_SIZE);
mdl->filepath = (char*) arenaAllocateBlock(arena, name_len + 1);
std::strncpy(mdl->filepath, filename, name_len);
mdl->filepath_hash = utilFNV64a_str(mdl->filepath); mdl->filepath_hash = utilFNV64a_str(mdl->filepath);
return mdl; return mdl;

5
src/asset.h

@ -35,7 +35,10 @@ uint arenaGetFreeSize(memory_arena* arena);
void* arenaAllocateBlock(memory_arena* arena, size_t block_size); void* arenaAllocateBlock(memory_arena* arena, size_t block_size);
char* arenaCopyCStr(memory_arena* arena, const char* input); #define MAX_NAME_LENGTH 256
char* arenaCopyCStr(memory_arena* arena,
const char* input,
u32 max_len = MAX_NAME_LENGTH);
// NOTE: wrapper for stb_image // NOTE: wrapper for stb_image
struct util_image struct util_image

Loading…
Cancel
Save