You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by sf...@apache.org on 2011/12/29 10:07:49 UTC

svn commit: r1225478 - /httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml

Author: sf
Date: Thu Dec 29 09:07:48 2011
New Revision: 1225478

URL: http://svn.apache.org/viewvc?rev=1225478&view=rev
Log:
Document the unfortunate side effect of converting ap_log_*error into macros
with respect to #ifdef.

Modified:
    httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml

Modified: httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml?rev=1225478&r1=1225477&r2=1225478&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml (original)
+++ httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml Thu Dec 29 09:07:48 2011
@@ -164,8 +164,9 @@
     <ul>
       <li>Introduce per-directory, per-module loglevel</li>
       <li>New loglevels APLOG_TRACEn</li>
-      <li>ap_log_*error become macro wrappers (fully back-compatible if
-          APLOG_MARK macro is used)</li>
+      <li>ap_log_*error become macro wrappers (back-compatible if
+          APLOG_MARK macro is used, except that is no longer possible to
+          use #ifdef inside the argument list)</li>
       <li>piped logging revamped</li>
       <li>module_index added to error_log hook</li>
       <li>new function: ap_log_command_line</li>
@@ -336,6 +337,11 @@
        <br />
     </example>
 
+    <p><code>ap_log_*error</code> are now implemented as macros. This means
+       that it is no longer possible to use <code>#ifdef</code> inside the
+       argument list of <code>ap_log_*error</code>, as this would cause
+       undefined behavor according to C99.</p>
+
     <p>A <code>server_rec</code> pointer must be passed to
        <code>ap_log_error()</code> when called after startup.  This
        was always appropriate, but there are even more limitations with