Remove backup ppc struct dis_private.
ppc-dis.c used a global struct whenever malloc failed to provide the eight bytes of memory necessary for struct dis_private. Which is quite ridiculous. If that malloc failed there is zero chance some other malloc won't fail too. * ppc-dis.c (private): Delete variable. (get_powerpc_dialect): Don't segfault on NULL info->private_data. (powerpc_init_dialect): Don't use global private.
This commit is contained in:
parent
f59f89789f
commit
6f0e075230
2 changed files with 10 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2019-12-10 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* ppc-dis.c (private): Delete variable.
|
||||||
|
(get_powerpc_dialect): Don't segfault on NULL info->private_data.
|
||||||
|
(powerpc_init_dialect): Don't use global private.
|
||||||
|
|
||||||
2019-12-10 Alan Modra <amodra@gmail.com>
|
2019-12-10 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* s12z-opc.c: Formatting.
|
* s12z-opc.c: Formatting.
|
||||||
|
|
|
@ -40,7 +40,7 @@ struct dis_private
|
||||||
{
|
{
|
||||||
/* Stash the result of parsing disassembler_options here. */
|
/* Stash the result of parsing disassembler_options here. */
|
||||||
ppc_cpu_t dialect;
|
ppc_cpu_t dialect;
|
||||||
} private;
|
};
|
||||||
|
|
||||||
#define POWERPC_DIALECT(INFO) \
|
#define POWERPC_DIALECT(INFO) \
|
||||||
(((struct dis_private *) ((INFO)->private_data))->dialect)
|
(((struct dis_private *) ((INFO)->private_data))->dialect)
|
||||||
|
@ -259,6 +259,7 @@ get_powerpc_dialect (struct disassemble_info *info)
|
||||||
{
|
{
|
||||||
ppc_cpu_t dialect = 0;
|
ppc_cpu_t dialect = 0;
|
||||||
|
|
||||||
|
if (info->private_data)
|
||||||
dialect = POWERPC_DIALECT (info);
|
dialect = POWERPC_DIALECT (info);
|
||||||
|
|
||||||
/* Disassemble according to the section headers flags for VLE-mode. */
|
/* Disassemble according to the section headers flags for VLE-mode. */
|
||||||
|
@ -308,7 +309,7 @@ powerpc_init_dialect (struct disassemble_info *info)
|
||||||
struct dis_private *priv = calloc (sizeof (*priv), 1);
|
struct dis_private *priv = calloc (sizeof (*priv), 1);
|
||||||
|
|
||||||
if (priv == NULL)
|
if (priv == NULL)
|
||||||
priv = &private;
|
return;
|
||||||
|
|
||||||
switch (info->mach)
|
switch (info->mach)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue