[prev in list] [next in list] [prev in thread] [next in thread]
List: graphicsmagick-commit
Subject: [GM-commit] GraphicsMagick: LogMagickEventList(): Prepare source module base...
From: GraphicsMagick Commits <graphicsmagick-commit () lists ! sourceforge ! net>
Date: 2020-03-08 15:55:28
Message-ID: mailman.60434.1583682939.2125.graphicsmagick-commit () lists ! sourceforge ! net
[Download RAW message or body]
changeset c0424b73d57e in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=c0424b73d57e
summary: LogMagickEventList(): Prepare source module base name more efficiently. \
Move MethodOutput implementation to the front so it is not filtered by other active \
blocks.
diffstat:
ChangeLog | 6 +
VisualMagick/installer/inc/version.isx | 4 +-
magick/log.c | 281 ++++++++++++++++----------------
magick/version.h | 4 +-
www/Changelog.html | 8 +
5 files changed, 158 insertions(+), 145 deletions(-)
diffs (470 lines):
diff -r 39e6d946843d -r c0424b73d57e ChangeLog
--- a/ChangeLog Sat Mar 07 18:12:44 2020 -0600
+++ b/ChangeLog Sun Mar 08 10:55:24 2020 -0500
@@ -1,3 +1,9 @@
+2020-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
+
+ * magick/log.c (LogMagickEventList): Prepare source module base
+ name more efficiently. Move MethodOutput implementation to the
+ front so it is not filtered by other active blocks.
+
2020-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/resize.c (HorizontalFilter): Improve tracing.
diff -r 39e6d946843d -r c0424b73d57e VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx Sat Mar 07 18:12:44 2020 -0600
+++ b/VisualMagick/installer/inc/version.isx Sun Mar 08 10:55:24 2020 -0500
@@ -10,5 +10,5 @@
#define public MagickPackageName "GraphicsMagick"
#define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020200307"
-#define public MagickPackageReleaseDate "snapshot-20200307"
+#define public MagickPackageVersionAddendum ".020200308"
+#define public MagickPackageReleaseDate "snapshot-20200308"
diff -r 39e6d946843d -r c0424b73d57e magick/log.c
--- a/magick/log.c Sat Mar 07 18:12:44 2020 -0600
+++ b/magick/log.c Sun Mar 08 10:55:24 2020 -0500
@@ -467,9 +467,12 @@
%
*/
MagickExport MagickPassFail LogMagickEventList(const ExceptionType type,
- const char *module,const char *function,const unsigned long line,
- const char *format,va_list operands)
+ const char *module,const char \
*function,const unsigned long line, + \
const char *format,va_list operands) {
+ const char
+ *modulebase;
+
char
*domain,
*severity,
@@ -477,16 +480,12 @@
nteventtype,
#endif
event[MaxTextExtent],
- srcname[MaxTextExtent],
timestamp[MaxTextExtent];
double
elapsed_time,
user_time;
- register const char
- *p;
-
struct tm
#if defined(HAVE_LOCALTIME_R)
tm_buf,
@@ -552,17 +551,21 @@
/* fixup module info to just include the filename - and not the
whole path to the file. This makes the log huge for no good
reason */
- GetPathComponent(module,TailPath,srcname);
+ for (modulebase=module+strlen(module)-1; modulebase > module; modulebase--)
+ if (IsBasenameSeparator(*modulebase))
+ {
+ modulebase++;
+ break;
+ }
- LockSemaphoreInfo(log_info->log_semaphore);
switch (((unsigned int) type) % 100)
- {
+ {
case UndefinedException: domain=(char *) "Undefined"; break;
case ExceptionBase: domain=(char *) "Exception"; break;
case ResourceBase: domain=(char *) "Resource"; break;
- /* case ResourceLimitBase: domain=(char *) "ResourceLimit"; break; */
+ /* case ResourceLimitBase: domain=(char *) "ResourceLimit"; break; */
case TypeBase: domain=(char *) "Type"; break;
- /* case AnnotateBase: domain=(char *) "Annotate"; break; */
+ /* case AnnotateBase: domain=(char *) "Annotate"; break; */
case OptionBase: domain=(char *) "Option"; break;
case DelegateBase: domain=(char *) "Delegate"; break;
case MissingDelegateBase: domain=(char *) "MissingDelegate"; break;
@@ -574,7 +577,7 @@
case CoderBase: domain=(char *) "Coder"; break;
case ModuleBase: domain=(char *) "Module"; break;
case DrawBase: domain=(char *) "Draw"; break;
- /* case RenderBase: domain=(char *) "Render"; break; */
+ /* case RenderBase: domain=(char *) "Render"; break; */
case ImageBase: domain=(char *) "image"; break;
case TemporaryFileBase: domain=(char *) "TemporaryFile"; break;
case TransformBase: domain=(char *) "Transform"; break;
@@ -587,24 +590,24 @@
case RegistryBase: domain=(char *) "Registry"; break;
case ConfigureBase: domain=(char *) "Configure"; break;
default: domain=(char *) "UnknownEvent"; break;
- }
+ }
switch ((((unsigned int) type) / 100) * 100)
- {
+ {
case EventException: severity=(char *) "Event"; break;
case WarningException: severity=(char *) "Warning"; break;
case ErrorException: severity=(char *) "Error"; break;
case FatalErrorException: severity=(char *) "FatalError"; break;
default: severity=(char *) "Unknown"; break;
- }
+ }
#if defined(MSWINDOWS)
switch ((type / 100) * 100)
- {
+ {
case EventException: nteventtype=EVENTLOG_INFORMATION_TYPE; break;
case WarningException: nteventtype=EVENTLOG_WARNING_TYPE; break;
case ErrorException: nteventtype=EVENTLOG_ERROR_TYPE; break;
case FatalErrorException: nteventtype=EVENTLOG_ERROR_TYPE; break;
default: nteventtype=EVENTLOG_INFORMATION_TYPE; break;
- }
+ }
#endif
#if defined(HAVE_VSNPRINTF)
(void) vsnprintf(event,MaxTextExtent,format,operands);
@@ -615,18 +618,34 @@
# error Neither vsnprintf or vsprintf is available.
# endif
#endif
+ LockSemaphoreInfo(log_info->log_semaphore);
seconds=time((time_t *) NULL);
#if defined(HAVE_LOCALTIME_R)
time_meridian=localtime_r(&seconds, &tm_buf);
#else
- time_meridian=localtime(&seconds); /* Thread-unsafe version */
+ time_meridian=localtime(&seconds); /* Possibly thread-unsafe version */
#endif /* if defined(HAVE_LOCALTIME_R) */
elapsed_time=GetElapsedTime(&log_info->timer);
user_time=GetUserTime(&log_info->timer);
(void) ContinueTimer((TimerInfo *) &log_info->timer);
FormatString(timestamp,"%04d%02d%02d%02d%02d%02d",time_meridian->tm_year+
- 1900,time_meridian->tm_mon+1,time_meridian->tm_mday,
- time_meridian->tm_hour,time_meridian->tm_min,time_meridian->tm_sec);
+ 1900,time_meridian->tm_mon+1,time_meridian->tm_mday,
+ time_meridian->tm_hour,time_meridian->tm_min,time_meridian->tm_sec);
+ if ((log_info->output_type & MethodOutput) &&
+ (log_info->method != (LogMethod) NULL))
+ {
+ char
+ buffer[MaxTextExtent];
+
+ FormatString(buffer,
+ "%.1024s %ld:%-9.6f %0.3f %ld %.1024s %.1024s %lu %.1024s"
+ " %.1024s %.1024s\n",
+ timestamp, (long) (elapsed_time/60.0),
+ fmod(elapsed_time,60.0),
+ user_time, (long) getpid(), modulebase, function, line,
+ domain, severity, event);
+ log_info->method(type,buffer);
+ }
if (((unsigned int) log_info->output_type) & XMLFileOutput)
{
/*
@@ -661,16 +680,16 @@
}
(void) fprintf(log_info->file,"<record>\n");
(void) fprintf(log_info->file," <timestamp>%.1024s</timestamp>\n",
- timestamp);
+ timestamp);
(void) fprintf(log_info->file,
- " <elapsed-time>%ld:%-9.6f</elapsed-time>\n",
- (long) (elapsed_time/60.0),fmod(elapsed_time,60.0));
+ " <elapsed-time>%ld:%-9.6f</elapsed-time>\n",
+ (long) (elapsed_time/60.0),fmod(elapsed_time,60.0));
(void) fprintf(log_info->file," <user-time>%0.3f</user-time>\n",
- user_time);
+ user_time);
(void) fprintf(log_info->file," <pid>%ld</pid>\n",(long) getpid());
- (void) fprintf(log_info->file," <module>%.1024s</module>\n",srcname);
+ (void) fprintf(log_info->file," <module>%.1024s</module>\n",modulebase);
(void) fprintf(log_info->file," <function>%.1024s</function>\n",
- function);
+ function);
(void) fprintf(log_info->file," <line>%lu</line>\n",line);
(void) fprintf(log_info->file," <domain>%.1024s</domain>\n",domain);
(void) fprintf(log_info->file," <severity>%.1024s</severity>\n",severity);
@@ -709,13 +728,13 @@
if (log_info->generation >= log_info->generations)
log_info->generation=0;
}
- (void) fprintf(log_info->file,
- "%.1024s %ld:%-9.6f %0.3f %ld %.1024s %.1024s %lu"
- " %.1024s %.1024s %.1024s\n",
- timestamp, (long) (elapsed_time/60.0),
- fmod(elapsed_time,60.0),
- user_time, (long) getpid(), srcname, function, line, domain,
- severity, event);
+ (void) fprintf(log_info->file,
+ "%.1024s %ld:%-9.6f %0.3f %ld %.1024s %.1024s %lu"
+ " %.1024s %.1024s %.1024s\n",
+ timestamp, (long) (elapsed_time/60.0),
+ fmod(elapsed_time,60.0),
+ user_time, (long) getpid(), modulebase, function, line, domain,
+ severity, event);
(void) fflush(log_info->file);
UnlockSemaphoreInfo(log_info->log_semaphore);
return(MagickPass);
@@ -731,7 +750,7 @@
" %.1024s %.1024s\n",
timestamp, (long) (elapsed_time/60.0),
fmod(elapsed_time,60.0),
- user_time, (long) getpid(), srcname, function, line,
+ user_time, (long) getpid(), modulebase, function, line,
domain, severity, event);
OutputDebugString(buffer);
}
@@ -752,7 +771,7 @@
" %.1024s %.1024s\n",
timestamp, (long) (elapsed_time/60.0),
fmod(elapsed_time,60.0),
- user_time, (long) getpid(), srcname, function, line,
+ user_time, (long) getpid(), modulebase, function, line,
domain, severity, event);
hSource = RegisterEventSource(NULL, MagickPackageName);
if (hSource != NULL)
@@ -766,8 +785,12 @@
if ((((unsigned int) log_info->output_type) & StdoutOutput) ||
(((unsigned int) log_info->output_type) & StderrOutput))
{
+ register const char
+ *p;
+
FILE
*file;
+
/*
Log to stdout in a "human readable" format.
*/
@@ -775,117 +798,93 @@
if (((unsigned int) log_info->output_type) & StderrOutput)
file = stderr;
for (p=log_info->format; *p != '\0'; p++)
- {
- /*
- Process formatting characters in text.
- */
- if ((*p == '\\') && (*(p+1) == 'r'))
- {
- (void) fprintf(file,"\r");
- p++;
- continue;
- }
- if ((*p == '\\') && (*(p+1) == 'n'))
- {
- (void) fprintf(file,"\n");
- p++;
- continue;
- }
- if (*p != '%')
- {
- (void) fprintf(file,"%c",*p);
- continue;
- }
- p++;
- switch (*p)
{
- case 'd':
- {
- (void) fprintf(file,"%.1024s",domain);
- break;
- }
- case 'e':
- {
- (void) fprintf(file,"%.1024s",event);
- break;
- }
- case 'f':
- {
- (void) fprintf(file,"%.1024s",function);
- break;
- }
- case 'l':
- {
- (void) fprintf(file,"%lu",line);
- break;
- }
- case 'm':
- {
- register const char
- *lp;
-
- for (lp=srcname+strlen(srcname)-1; lp > srcname; lp--)
- if (*lp == *DirectorySeparator)
- {
- lp++;
- break;
- }
- (void) fprintf(file,"%.1024s",lp);
- break;
- }
- case 'p':
- {
- (void) fprintf(file,"%ld",(long) getpid());
- break;
- }
- case 'r':
- {
- (void) fprintf(file,"%ld:%-9.6f",(long) (elapsed_time/60.0),
- fmod(elapsed_time,60.0));
- break;
- }
- case 's':
- {
- (void) fprintf(file,"%.1024s",severity);
- break;
- }
- case 't':
- {
- (void) fprintf(file,"%02d:%02d:%02d",time_meridian->tm_hour,
- time_meridian->tm_min,time_meridian->tm_sec);
- break;
- }
- case 'u':
- {
- (void) fprintf(file,"%0.3fu",user_time);
- break;
- }
- default:
- {
- (void) fprintf(file,"%%");
- (void) fprintf(file,"%c",*p);
- break;
- }
+ /*
+ Process formatting characters in text.
+ */
+ if ((*p == '\\') && (*(p+1) == 'r'))
+ {
+ (void) fprintf(file,"\r");
+ p++;
+ continue;
+ }
+ if ((*p == '\\') && (*(p+1) == 'n'))
+ {
+ (void) fprintf(file,"\n");
+ p++;
+ continue;
+ }
+ if (*p != '%')
+ {
+ (void) fprintf(file,"%c",*p);
+ continue;
+ }
+ p++;
+ switch (*p)
+ {
+ case 'd':
+ {
+ (void) fprintf(file,"%.1024s",domain);
+ break;
+ }
+ case 'e':
+ {
+ (void) fprintf(file,"%.1024s",event);
+ break;
+ }
+ case 'f':
+ {
+ (void) fprintf(file,"%.1024s",function);
+ break;
+ }
+ case 'l':
+ {
+ (void) fprintf(file,"%lu",line);
+ break;
+ }
+ case 'm':
+ {
+ (void) fprintf(file,"%.1024s",modulebase);
+ break;
+ }
+ case 'p':
+ {
+ (void) fprintf(file,"%ld",(long) getpid());
+ break;
+ }
+ case 'r':
+ {
+ (void) fprintf(file,"%ld:%-9.6f",(long) (elapsed_time/60.0),
+ fmod(elapsed_time,60.0));
+ break;
+ }
+ case 's':
+ {
+ (void) fprintf(file,"%.1024s",severity);
+ break;
+ }
+ case 't':
+ {
+ (void) fprintf(file,"%02d:%02d:%02d",time_meridian->tm_hour,
+ time_meridian->tm_min,time_meridian->tm_sec);
+ break;
+ }
+ case 'u':
+ {
+ (void) fprintf(file,"%0.3fu",user_time);
+ break;
+ }
+ default:
+ {
+ (void) fprintf(file,"%%");
+ (void) fprintf(file,"%c",*p);
+ break;
+ }
+ }
}
- }
(void) fprintf(file,"\n");
(void) fflush(file);
}
- if ((log_info->output_type & MethodOutput) &&
- (log_info->method != (LogMethod) NULL))
- {
- char
- buffer[MaxTextExtent];
-
- FormatString(buffer,
- "%.1024s %ld:%-9.6f %0.3f %ld %.1024s %.1024s %lu %.1024s"
- " %.1024s %.1024s\n",
- timestamp, (long) (elapsed_time/60.0),
- fmod(elapsed_time,60.0),
- user_time, (long) getpid(), srcname, function, line,
- domain, severity, event);
- log_info->method(type,buffer);
- }
UnlockSemaphoreInfo(log_info->log_semaphore);
return(MagickPass);
}
diff -r 39e6d946843d -r c0424b73d57e magick/version.h
--- a/magick/version.h Sat Mar 07 18:12:44 2020 -0600
+++ b/magick/version.h Sun Mar 08 10:55:24 2020 -0500
@@ -38,8 +38,8 @@
#define MagickLibVersion 0x242100
#define MagickLibVersionText "1.4"
#define MagickLibVersionNumber 24,21,0
-#define MagickChangeDate "20200307"
-#define MagickReleaseDate "snapshot-20200307"
+#define MagickChangeDate "20200308"
+#define MagickReleaseDate "snapshot-20200308"
/*
The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 39e6d946843d -r c0424b73d57e www/Changelog.html
--- a/www/Changelog.html Sat Mar 07 18:12:44 2020 -0600
+++ b/www/Changelog.html Sun Mar 08 10:55:24 2020 -0500
@@ -35,6 +35,14 @@
<div class="document">
+<p>2020-03-08 Bob Friesenhahn <<a class="reference external" \
href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span> \
4;</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p>
+<blockquote>
+<ul class="simple">
+<li>magick/log.c (LogMagickEventList): Prepare source module base
+name more efficiently. Move MethodOutput implementation to the
+front so it is not filtered by other active blocks.</li>
+</ul>
+</blockquote>
<p>2020-03-07 Bob Friesenhahn <<a class="reference external" \
href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span> \
4;</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p>
<blockquote>
<ul class="simple">
_______________________________________________
Graphicsmagick-commit mailing list
Graphicsmagick-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-commit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic