#include <ctype.h>
#include <limits.h>
-#include <setjmp.h>
#include <stdlib.h>
#include <common/render.h>
#include <pack/pack.h>
-static jmp_buf jbuf;
-
#define MARKED(stk,n) ((stk)->markfn(n,-1))
#define MARK(stk,n) ((stk)->markfn(n,1))
#define UNMARK(stk,n) ((stk)->markfn(n,0))
for (n = agfstnode(g); n; n = agnxtnode(g, n))
UNMARK(&stk,n);
- if (setjmp(jbuf)) {
- error = 1;
- goto packerror;
- }
/* Component with pinned nodes */
for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
if (MARKED(&stk,n) || !isPinned(n))
for (n = agfstnode(g); n; n = agnxtnode(g, n))
UNMARK(&stk,n);
- if (setjmp(jbuf)) {
- freeStk (&stk);
- free (ccs);
- if (name != buffer)
- free(name);
- *ncc = 0;
- return NULL;
- }
for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
if (MARKED(&stk,n))
continue;
for (n = agfstnode(g); n; n = agnxtnode(g, n))
UNMARK(&stk,n);
- if (setjmp(jbuf)) {
- freeStk (&stk);
- return -1;
- }
-
n = agfstnode(g);
cnt = dfs(g, agfstnode(g), NULL, &stk);
freeStk (&stk);