X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpdf2swf.c;h=ea61645fc0c0ba03bf9ee5520ca108768d9d5cec;hb=2b277306fe268fb42630f980ec950988c93c6158;hp=39680cf1335121bfa8dbd727c290b209499d2ce3;hpb=f751ea1a1a60ecf0856cc38704a32bf53c898e44;p=swftools.git diff --git a/src/pdf2swf.c b/src/pdf2swf.c index 39680cf..ea61645 100644 --- a/src/pdf2swf.c +++ b/src/pdf2swf.c @@ -25,9 +25,16 @@ #include #include #include "../config.h" +#ifdef HAVE_SIGNAL_H +#include +#endif #ifdef HAVE_DIRENT_H #include #endif +#ifdef HAVE_MALLOC_H +#include +#endif + #include "../lib/args.h" #include "../lib/os.h" #include "../lib/rfxswf.h" @@ -56,6 +63,8 @@ static int ynup = 1; static int info_only = 0; +static int max_time = 0; + static int flatten = 0; char* fontpaths[256]; @@ -90,6 +99,23 @@ int systemf(const char* format, ...) return ret; } +#ifdef HAVE_SIGNAL_H +void sigalarm(int signal) +{ + msg(" Aborting rendering after %d seconds", max_time); +#if 0 && defined(HAVE_SYS_TIME_H) && defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRUSAGE) + struct rusage usage; + getrusage(RUSAGE_CHILDREN, &usage); + msg(" Memory used: %d,%d,%d", usage.ru_maxrss, usage.ru_idrss, usage.ru_isrss); +#endif +#if defined(HAVE_MALLINFO) && defined(HAVE_MALLOC_H) + struct mallinfo info = mallinfo(); + msg(" Memory used: %d Mb (%d bytes)", info.uordblks/1048576, info.uordblks); +#endif + exit(1); +} +#endif + int args_callback_option(char*name,char*val) { if (!strcmp(name, "o")) { @@ -209,8 +235,11 @@ int args_callback_option(char*name,char*val) { #ifndef WIN32 else if (!strcmp(name, "Q")) { - int seconds = atoi(val); - alarm(seconds); + max_time = atoi(val); + alarm(max_time); +# ifdef HAVE_SIGNAL_H + signal(SIGALRM, sigalarm); +# endif return 1; } #endif @@ -273,7 +302,7 @@ int args_callback_option(char*name,char*val) { } else if (!strcmp(name, "G")) { - driver->set_parameter(driver, "optimize_polygons", "1"); + //driver->set_parameter(driver, "optimize_polygons", "1"); flatten = 1; return 0; }