mirror of
https://github.com/libretro/RetroArch
synced 2025-02-12 00:40:26 +00:00
(MSVC 2003) core_info - remove all_ext from heap - fixes crash with MSVC2003
and makes for easier code
This commit is contained in:
parent
f349410082
commit
50a57b03a1
22
core_info.c
22
core_info.c
@ -45,24 +45,8 @@ static void core_info_list_resolve_all_extensions(
|
|||||||
core_info_list_t *core_info_list)
|
core_info_list_t *core_info_list)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
size_t all_ext_len = 0;
|
|
||||||
char *all_ext = NULL;
|
|
||||||
|
|
||||||
for (i = 0; i < core_info_list->count; i++)
|
core_info_list->all_ext[0] = '\0';
|
||||||
{
|
|
||||||
if (core_info_list->list[i].supported_extensions)
|
|
||||||
all_ext_len +=
|
|
||||||
(strlen(core_info_list->list[i].supported_extensions) + 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
all_ext_len += STRLEN_CONST("7z|") + STRLEN_CONST("zip|");
|
|
||||||
|
|
||||||
all_ext = (char*)calloc(1, all_ext_len);
|
|
||||||
|
|
||||||
if (!all_ext)
|
|
||||||
return;
|
|
||||||
|
|
||||||
core_info_list->all_ext = all_ext;
|
|
||||||
|
|
||||||
for (i = 0; i < core_info_list->count; i++)
|
for (i = 0; i < core_info_list->count; i++)
|
||||||
{
|
{
|
||||||
@ -70,7 +54,8 @@ static void core_info_list_resolve_all_extensions(
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
strlcat(core_info_list->all_ext,
|
strlcat(core_info_list->all_ext,
|
||||||
core_info_list->list[i].supported_extensions, all_ext_len);
|
core_info_list->list[i].supported_extensions,
|
||||||
|
sizeof(core_info_list->all_ext));
|
||||||
string_concat(core_info_list->all_ext, "|");
|
string_concat(core_info_list->all_ext, "|");
|
||||||
}
|
}
|
||||||
#ifdef HAVE_7ZIP
|
#ifdef HAVE_7ZIP
|
||||||
@ -180,7 +165,6 @@ static void core_info_list_free(core_info_list_t *core_info_list)
|
|||||||
free(info->firmware);
|
free(info->firmware);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(core_info_list->all_ext);
|
|
||||||
free(core_info_list->list);
|
free(core_info_list->list);
|
||||||
free(core_info_list);
|
free(core_info_list);
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include <lists/string_list.h>
|
#include <lists/string_list.h>
|
||||||
#include <retro_common_api.h>
|
#include <retro_common_api.h>
|
||||||
|
#include <retro_miscellaneous.h>
|
||||||
|
|
||||||
RETRO_BEGIN_DECLS
|
RETRO_BEGIN_DECLS
|
||||||
|
|
||||||
@ -70,7 +71,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
core_info_t *list;
|
core_info_t *list;
|
||||||
size_t count;
|
size_t count;
|
||||||
char *all_ext;
|
char all_ext[PATH_MAX_LENGTH];
|
||||||
} core_info_list_t;
|
} core_info_list_t;
|
||||||
|
|
||||||
typedef struct core_info_ctx_firmware
|
typedef struct core_info_ctx_firmware
|
||||||
|
Loading…
x
Reference in New Issue
Block a user