separated undo_initialized and mem_undo_initialized, so they can be used more interchangeably

This commit is contained in:
stefan schippers 2024-12-16 12:14:11 +01:00
parent b4423126ea
commit 5bc194f3a5
4 changed files with 11 additions and 9 deletions

View File

@ -203,8 +203,8 @@ static void mem_init_undo(void)
{ {
int slot; int slot;
dbg(1, "mem_init_undo(): undo_initialized = %d\n", xctx->undo_initialized); dbg(1, "mem_init_undo(): undo_initialized = %d\n", xctx->mem_undo_initialized);
if(!xctx->undo_initialized) { if(!xctx->mem_undo_initialized) {
for(slot = 0;slot<MAX_UNDO; slot++) { for(slot = 0;slot<MAX_UNDO; slot++) {
xctx->uslot[slot].lines = my_calloc(_ALLOC_ID_, cadlayers, sizeof(int)); xctx->uslot[slot].lines = my_calloc(_ALLOC_ID_, cadlayers, sizeof(int));
xctx->uslot[slot].rects = my_calloc(_ALLOC_ID_, cadlayers, sizeof(int)); xctx->uslot[slot].rects = my_calloc(_ALLOC_ID_, cadlayers, sizeof(int));
@ -215,7 +215,7 @@ static void mem_init_undo(void)
xctx->uslot[slot].aptr = my_calloc(_ALLOC_ID_, cadlayers, sizeof(xArc *)); xctx->uslot[slot].aptr = my_calloc(_ALLOC_ID_, cadlayers, sizeof(xArc *));
xctx->uslot[slot].pptr = my_calloc(_ALLOC_ID_, cadlayers, sizeof(xPoly *)); xctx->uslot[slot].pptr = my_calloc(_ALLOC_ID_, cadlayers, sizeof(xPoly *));
} }
xctx->undo_initialized = 1; xctx->mem_undo_initialized = 1;
} }
} }
@ -223,11 +223,11 @@ static void mem_init_undo(void)
void mem_clear_undo(void) void mem_clear_undo(void)
{ {
int slot; int slot;
dbg(1, "mem_clear_undo(): undo_initialized = %d\n", xctx->undo_initialized); dbg(1, "mem_clear_undo(): undo_initialized = %d\n", xctx->mem_undo_initialized);
xctx->cur_undo_ptr = 0; xctx->cur_undo_ptr = 0;
xctx->tail_undo_ptr = 0; xctx->tail_undo_ptr = 0;
xctx->head_undo_ptr = 0; xctx->head_undo_ptr = 0;
if(!xctx->undo_initialized) return; if(!xctx->mem_undo_initialized) return;
for(slot = 0; slot<MAX_UNDO; slot++) { for(slot = 0; slot<MAX_UNDO; slot++) {
free_undo_lines(slot); free_undo_lines(slot);
free_undo_rects(slot); free_undo_rects(slot);
@ -244,8 +244,8 @@ void mem_clear_undo(void)
void mem_delete_undo(void) void mem_delete_undo(void)
{ {
int slot; int slot;
dbg(1, "mem_delete_undo(): undo_initialized = %d\n", xctx->undo_initialized); dbg(1, "mem_delete_undo(): undo_initialized = %d\n", xctx->mem_undo_initialized);
if(!xctx->undo_initialized) return; if(!xctx->mem_undo_initialized) return;
mem_clear_undo(); mem_clear_undo();
for(slot = 0;slot<MAX_UNDO; slot++) { for(slot = 0;slot<MAX_UNDO; slot++) {
my_free(_ALLOC_ID_, &xctx->uslot[slot].lines); my_free(_ALLOC_ID_, &xctx->uslot[slot].lines);
@ -257,7 +257,7 @@ void mem_delete_undo(void)
my_free(_ALLOC_ID_, &xctx->uslot[slot].aptr); my_free(_ALLOC_ID_, &xctx->uslot[slot].aptr);
my_free(_ALLOC_ID_, &xctx->uslot[slot].pptr); my_free(_ALLOC_ID_, &xctx->uslot[slot].pptr);
} }
xctx->undo_initialized = 0; xctx->mem_undo_initialized = 0;
} }
void mem_push_undo(void) void mem_push_undo(void)

View File

@ -3570,7 +3570,7 @@ static void init_undo(void)
if(xctx->no_undo == 0 && !xctx->undo_initialized) { if(xctx->no_undo == 0 && !xctx->undo_initialized) {
/* create undo directory */ /* create undo directory */
if( !my_strdup(_ALLOC_ID_, &xctx->undo_dirname, create_tmpdir("xschem_undo_") )) { if( !my_strdup(_ALLOC_ID_, &xctx->undo_dirname, create_tmpdir("xschem_undo_") )) {
dbg(0, "xinit(): problems creating tmp undo dir, Undo will be disabled\n"); dbg(0, "init_undo(): problems creating tmp undo dir, Undo will be disabled\n");
dbg(0, "init_undo(): Check permissions in %s\n", tclgetvar("XSCHEM_TMP_DIR")); dbg(0, "init_undo(): Check permissions in %s\n", tclgetvar("XSCHEM_TMP_DIR"));
xctx->no_undo = 1; /* disable undo */ xctx->no_undo = 1; /* disable undo */
} }

View File

@ -475,6 +475,7 @@ static void alloc_xschem_data(const char *top_path, const char *win_path)
xctx->clear_undo = mem_clear_undo; xctx->clear_undo = mem_clear_undo;
} }
xctx->undo_initialized = 0; xctx->undo_initialized = 0;
xctx->mem_undo_initialized = 0;
xctx->zoom=CADINITIALZOOM; xctx->zoom=CADINITIALZOOM;
xctx->mooz=1/CADINITIALZOOM; xctx->mooz=1/CADINITIALZOOM;
xctx->xorigin=CADINITIALX; xctx->xorigin=CADINITIALX;

View File

@ -1082,6 +1082,7 @@ typedef struct {
/* in_memory_undo */ /* in_memory_undo */
Undo_slot uslot[MAX_UNDO]; Undo_slot uslot[MAX_UNDO];
int undo_initialized; int undo_initialized;
int mem_undo_initialized;
/* graph context struct */ /* graph context struct */
Graph_ctx graph_struct; Graph_ctx graph_struct;