mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-01-30 16:41:05 +08:00
labels, outelf: remove casts for allocations
Remove casts from allocations. This is simply Not How To Do Things: every cast carries a potential risk of being a toxic type misuse (e.g. pointer as integer) and so any unnecessary cast is actively harmful. Note that a lot of allocations here are completely unnecessary: the core code now guarantees that all filenames are permanently allocated for the duration of the assembly, and so should be turned into const char * without any further allocation. Any remaining malloc+strcpy should be turned into nasm_strdup(), and nasm_new[n]() used whereever possible. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
4dfbd9aec5
commit
3e555483b3
@ -186,7 +186,7 @@ static union label *find_label(const char *label, int create, int *created)
|
||||
/*
|
||||
* must allocate a new block
|
||||
*/
|
||||
lfree->admin.next = (union label *)nasm_malloc(LBLK_SIZE);
|
||||
lfree->admin.next = nasm_malloc(LBLK_SIZE);
|
||||
lfree = lfree->admin.next;
|
||||
init_block(lfree);
|
||||
}
|
||||
@ -424,11 +424,11 @@ int init_labels(void)
|
||||
{
|
||||
hash_init(<ab, HASH_LARGE);
|
||||
|
||||
ldata = lfree = (union label *)nasm_malloc(LBLK_SIZE);
|
||||
ldata = lfree = nasm_malloc(LBLK_SIZE);
|
||||
init_block(lfree);
|
||||
|
||||
perm_head = perm_tail =
|
||||
(struct permts *)nasm_malloc(sizeof(struct permts));
|
||||
nasm_malloc(sizeof(struct permts));
|
||||
|
||||
perm_head->next = NULL;
|
||||
perm_head->size = PERMTS_SIZE;
|
||||
@ -483,7 +483,7 @@ static char *perm_copy(const char *string)
|
||||
|
||||
if (perm_tail->size - perm_tail->usage < len) {
|
||||
perm_tail->next =
|
||||
(struct permts *)nasm_malloc(sizeof(struct permts));
|
||||
nasm_malloc(sizeof(struct permts));
|
||||
perm_tail = perm_tail->next;
|
||||
perm_tail->next = NULL;
|
||||
perm_tail->size = PERMTS_SIZE;
|
||||
|
@ -2468,7 +2468,7 @@ static void stabs_linenum(const char *filename, int32_t linenumber, int32_t segt
|
||||
{
|
||||
(void)segto;
|
||||
if (!stabs_filename) {
|
||||
stabs_filename = (char *)nasm_malloc(strlen(filename) + 1);
|
||||
stabs_filename = nasm_malloc(strlen(filename) + 1);
|
||||
strcpy(stabs_filename, filename);
|
||||
} else {
|
||||
if (strcmp(stabs_filename, filename)) {
|
||||
@ -2478,7 +2478,7 @@ static void stabs_linenum(const char *filename, int32_t linenumber, int32_t segt
|
||||
|
||||
/* why not nasm_free(stabs_filename); we're done with the old one */
|
||||
|
||||
stabs_filename = (char *)nasm_malloc(strlen(filename) + 1);
|
||||
stabs_filename = nasm_malloc(strlen(filename) + 1);
|
||||
strcpy(stabs_filename, filename);
|
||||
}
|
||||
}
|
||||
@ -2496,7 +2496,7 @@ static void stabs_output(int type, void *param)
|
||||
if (!(sects[s->section]->flags & SHF_EXECINSTR))
|
||||
return; /* line info is only collected for executable sections */
|
||||
numlinestabs++;
|
||||
el = (struct linelist *)nasm_malloc(sizeof(struct linelist));
|
||||
el = nasm_malloc(sizeof(struct linelist));
|
||||
el->info.offset = s->offset;
|
||||
el->info.section = s->section;
|
||||
el->info.name = s->name;
|
||||
@ -2528,7 +2528,7 @@ static void stabs_generate(void)
|
||||
|
||||
ptr = stabslines;
|
||||
|
||||
allfiles = (char **)nasm_zalloc(numlinestabs * sizeof(char *));
|
||||
allfiles = nasm_zalloc(numlinestabs * sizeof(char *));
|
||||
numfiles = 0;
|
||||
while (ptr) {
|
||||
if (numfiles == 0) {
|
||||
@ -2547,7 +2547,7 @@ static void stabs_generate(void)
|
||||
ptr = ptr->next;
|
||||
}
|
||||
strsize = 1;
|
||||
fileidx = (int *)nasm_malloc(numfiles * sizeof(int));
|
||||
fileidx = nasm_malloc(numfiles * sizeof(int));
|
||||
for (i = 0; i < numfiles; i++) {
|
||||
fileidx[i] = strsize;
|
||||
strsize += strlen(allfiles[i]) + 1;
|
||||
@ -2565,10 +2565,10 @@ static void stabs_generate(void)
|
||||
* the sourcefiles changes each line, which would mean 1 SOL, 1 SYMLIN per line
|
||||
* plus one "ending" entry
|
||||
*/
|
||||
sbuf = (uint8_t *)nasm_malloc((numlinestabs * 2 + 4) *
|
||||
sbuf = nasm_malloc((numlinestabs * 2 + 4) *
|
||||
sizeof(struct stabentry));
|
||||
ssbuf = (uint8_t *)nasm_malloc(strsize);
|
||||
rbuf = (uint8_t *)nasm_malloc(numlinestabs * (is_elf64() ? 16 : 8) * (2 + 3));
|
||||
ssbuf = nasm_malloc(strsize);
|
||||
rbuf = nasm_malloc(numlinestabs * (is_elf64() ? 16 : 8) * (2 + 3));
|
||||
rptr = rbuf;
|
||||
|
||||
for (i = 0; i < numfiles; i++)
|
||||
@ -3293,7 +3293,7 @@ static void dwarf_findfile(const char * fname)
|
||||
}
|
||||
|
||||
/* add file name to end of list */
|
||||
dwarf_clist = (struct linelist *)nasm_malloc(sizeof(struct linelist));
|
||||
dwarf_clist = nasm_malloc(sizeof(struct linelist));
|
||||
dwarf_numfiles++;
|
||||
dwarf_clist->line = dwarf_numfiles;
|
||||
dwarf_clist->filename = nasm_malloc(strlen(fname) + 1);
|
||||
@ -3332,7 +3332,7 @@ static void dwarf_findsect(const int index)
|
||||
}
|
||||
|
||||
/* add entry to end of list */
|
||||
dwarf_csect = (struct sectlist *)nasm_malloc(sizeof(struct sectlist));
|
||||
dwarf_csect = nasm_malloc(sizeof(struct sectlist));
|
||||
dwarf_nsections++;
|
||||
dwarf_csect->psaa = plinep = saa_init(1L);
|
||||
dwarf_csect->line = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user