Skip to content

Commit

Permalink
[tidy] Refactory addToTrail()
Browse files Browse the repository at this point in the history
  • Loading branch information
thoni56 committed Mar 30, 2024
1 parent 8a1d9d8 commit c123d74
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/c_parser.tab.c
Original file line number Diff line number Diff line change
Expand Up @@ -3150,7 +3150,7 @@ case 178:
yyval.ast_typeModifiers.data = yyvsp[-3].ast_typeModifiers.data;
if (yyval.ast_typeModifiers.data->u.t->u.enums==NULL) {
yyval.ast_typeModifiers.data->u.t->u.enums = yyvsp[-1].ast_symbolList.data;
addToTrail(setToNull, &(yyval.ast_typeModifiers.data->u.t->u.enums), (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(setToNull, &(yyval.ast_typeModifiers.data->u.t->u.enums));
}
}
break;
Expand Down
2 changes: 1 addition & 1 deletion src/c_parser.y
Original file line number Diff line number Diff line change
Expand Up @@ -919,7 +919,7 @@ enum_specifier
$$.data = $1.data;
if ($$.data->u.t->u.enums==NULL) {
$$.data->u.t->u.enums = $3.data;
addToTrail(setToNull, &($$.data->u.t->u.enums), (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(setToNull, &($$.data->u.t->u.enums));
}
}
| ENUM '{' enumerator_list_comma '}' {
Expand Down
4 changes: 2 additions & 2 deletions src/jslsemact.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,11 +159,11 @@ Symbol *jslTypeSymbolDefinition(char *ttt2, IdList *packid,
if (order == ORDER_PREPEND) {
log_debug("[jsl] prepending class %s to jsltab", smemb->name);
jslTypeTabPush(s_jsl->typeTab, xss, index);
addToTrail(jslRemoveNestedClass, xss, (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(jslRemoveNestedClass, xss);
} else {
log_debug("[jsl] appending class %s to jsltab", smemb->name);
jslTypeTabSetLast(s_jsl->typeTab, xss, index);
addToTrail(jslRemoveNestedClass, xss, (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(jslRemoveNestedClass, xss);
}
}
return(smemb);
Expand Down
4 changes: 2 additions & 2 deletions src/semact.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ void addSymbol(SymbolTable *table, Symbol *symbol) {
storageEnumName[symbol->storage]);
assert(symbol->npointers==0);
addSymbolNoTrail(table, symbol);
addToTrail(deleteSymDef, symbol /* TODO? Should also include reference to table */, (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(deleteSymDef, symbol /* TODO? Should also include reference to table */);
}

void recFindPush(Symbol *str, S_recFindStr *rfs) {
Expand Down Expand Up @@ -1020,7 +1020,7 @@ void specializeStrUnionDef(Symbol *sd, Symbol *rec) {
assert(sd->u.structSpec);
if (sd->u.structSpec->records!=NULL) return;
sd->u.structSpec->records = rec;
addToTrail(setToNull, &(sd->u.structSpec->records), (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(setToNull, &(sd->u.structSpec->records));
for(dd=rec; dd!=NULL; dd=dd->next) {
if (dd->name!=NULL) {
dd->linkName = string3ConcatInStackMem(sd->linkName,".",dd->name);
Expand Down
10 changes: 6 additions & 4 deletions src/stackmemory.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "constants.h"
#include "proto.h"
#include "commons.h"
#include "globals.h"

#include "stackmemory.h"

Expand Down Expand Up @@ -31,15 +32,16 @@ static void trailDump(void) {
}


void addToTrail(void (*action)(void*), void *pointer, bool needTrailOnTopLevel) {
void addToTrail(void (*action)(void*), void *argument) {
FreeTrail *t;

/* no trail at level 0 in C, Yacc */
if ((nestingLevel() == 0) && !needTrailOnTopLevel)
if ((nestingLevel() == 0) && !(LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)))
return;

t = stackMemoryAlloc(sizeof(FreeTrail));
t->action = action;
t->pointer = (void **) pointer;
t->argument = (void **) argument;
t->next = currentBlock->trail;
currentBlock->trail = t;
if (memoryTrace)
Expand All @@ -50,7 +52,7 @@ void removeFromTrailUntil(FreeTrail *untilP) {
FreeTrail *p;
for (p=currentBlock->trail; untilP<p; p=p->next) {
assert(p!=NULL);
(*(p->action))(p->pointer);
(*(p->action))(p->argument);
}
if (p!=untilP) {
error(ERR_INTERNAL, "block structure mismatch?");
Expand Down
4 changes: 2 additions & 2 deletions src/stackmemory.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
/* WTF is the "trail" actually? Frame pointers? */
typedef struct freeTrail {
void (*action)(void*);
void *pointer;
void *argument;
struct freeTrail *next;
} FreeTrail;

Expand All @@ -39,7 +39,7 @@ extern bool isMemoryFromPreviousBlock(void *ppp);
extern bool isFreedPointer(void *ptr);


extern void addToTrail(void (*action)(void*), void *p, bool needTrailOnTopLevel);
extern void addToTrail(void (*action)(void*), void *argument);
extern void removeFromTrailUntil(FreeTrail *untilP);
extern void initOuterCodeBlock(void);

Expand Down
2 changes: 1 addition & 1 deletion src/yacc_parser.tab.c
Original file line number Diff line number Diff line change
Expand Up @@ -3942,7 +3942,7 @@ case 347:
yyval.ast_typeModifiers.data = yyvsp[-3].ast_typeModifiers.data;
if (yyval.ast_typeModifiers.data->u.t->u.enums==NULL) {
yyval.ast_typeModifiers.data->u.t->u.enums = yyvsp[-1].ast_symbolList.data;
addToTrail(setToNull, &(yyval.ast_typeModifiers.data->u.t->u.enums), (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(setToNull, &(yyval.ast_typeModifiers.data->u.t->u.enums));
}
}
break;
Expand Down
2 changes: 1 addition & 1 deletion src/yacc_parser.y
Original file line number Diff line number Diff line change
Expand Up @@ -1133,7 +1133,7 @@ enum_specifier
$$.data = $1.data;
if ($$.data->u.t->u.enums==NULL) {
$$.data->u.t->u.enums = $3.data;
addToTrail(setToNull, &($$.data->u.t->u.enums), (LANGUAGE(LANG_C)||LANGUAGE(LANG_YACC)));
addToTrail(setToNull, &($$.data->u.t->u.enums));
}
}
| ENUM '{' enumerator_list_comma '}' {
Expand Down

0 comments on commit c123d74

Please sign in to comment.