Author: richter
Date: Wed Jan  4 04:51:31 2006
New Revision: 365904

URL: http://svn.apache.org/viewcvs?rev=365904&view=rev
Log:
Better out of memory handling

Modified:
    perl/embperl/trunk/Changes.pod
    perl/embperl/trunk/MANIFEST
    perl/embperl/trunk/epdom.c

Modified: perl/embperl/trunk/Changes.pod
URL: 
http://svn.apache.org/viewcvs/perl/embperl/trunk/Changes.pod?rev=365904&r1=365903&r2=365904&view=diff
==============================================================================
--- perl/embperl/trunk/Changes.pod (original)
+++ perl/embperl/trunk/Changes.pod Wed Jan  4 04:51:31 2006
@@ -15,7 +15,10 @@
       once at server startup. Spotted by Derrick Spell. 
     - Fixed parsing of Cache configuration functions in
       httpd.conf. Spotted by Carl Eklof.
-
+    - Added better handling of Out Of Memory condition,
+      i.e. log error end try to clean up instead of
+      segfault.
+    
 =head1 2.1.0  15. Nov 2005
 
     - Added better UTF-8 support:

Modified: perl/embperl/trunk/MANIFEST
URL: 
http://svn.apache.org/viewcvs/perl/embperl/trunk/MANIFEST?rev=365904&r1=365903&r2=365904&view=diff
==============================================================================
--- perl/embperl/trunk/MANIFEST (original)
+++ perl/embperl/trunk/MANIFEST Wed Jan  4 04:51:31 2006
@@ -14,6 +14,7 @@
 Embperl/Form/Control/checkbox.pm
 Embperl/Form/Control/blank.pm
 Embperl/Form/Control/tabs.pm
+Embperl/Form/Control/table.pm
 Embperl/Form/Control/transparent.pm
 Embperl/Form/Control/radio.pm
 Embperl/Form/Control/file.pm

Modified: perl/embperl/trunk/epdom.c
URL: 
http://svn.apache.org/viewcvs/perl/embperl/trunk/epdom.c?rev=365904&r1=365903&r2=365904&view=diff
==============================================================================
--- perl/embperl/trunk/epdom.c (original)
+++ perl/embperl/trunk/epdom.c Wed Jan  4 04:51:31 2006
@@ -133,6 +133,13 @@
     pMemLast = malloc(sizeof (tPad)) ;
 #endif
 
+    if (pMemLast == NULL)
+        {
+        char buf[256] ;
+        sprintf (buf, "dom_malloc: Out of memory (%u bytes)", sizeof (tPad)) ;
+       mydie (a, buf) ;
+       }
+       
     nMemUsage += sizeof (tPad) ;
 
     pMemEnd = pMemLast + sizeof (tPad) ;
@@ -235,9 +242,13 @@
     else
         {
         char buf[256] ;
+        /*
         sprintf (buf, "%u bytes", n) ;
         LogErrorParam (a, rcOutOfMemory, "str_malloc failed", buf) ;
-        }
+        */
+        sprintf (buf, "str_malloc: Out of memory (%u bytes)", n + sizeof 
(size_t)) ;
+       mydie (a, buf) ;
+       }
 
     return m ;
     }
@@ -262,9 +273,13 @@
     else
         {
         char buf[256] ;
+       /*
         sprintf (buf, "%u bytes", n) ;
         LogErrorParam (a, rcOutOfMemory, "str_malloc_dbg failed", buf) ;
-        }
+        */
+        sprintf (buf, "str_malloc: Out of memory (%u bytes)", n + sizeof 
(size_t)) ;
+       mydie (a, buf) ;
+       }
 
     return m ;
     }
@@ -290,9 +305,13 @@
     else
         {
         char buf[256] ;
+       /*
         sprintf (buf, "%zu bytes", n) ;
         LogErrorParam (a, rcOutOfMemory, "str_realloc failed", buf) ;
-        }
+        */
+        sprintf (buf, "str_realloc: Out of memory (%u bytes)", n + sizeof 
(size_t)) ;
+       mydie (a, buf) ;
+       }
     
     return m ;
     }
@@ -319,9 +338,13 @@
     else
         {
         char buf[256] ;
+       /*
         sprintf (buf, "%zu bytes", n) ;
         LogErrorParam (a, rcOutOfMemory, "str_realloc failed", buf) ;
-        }
+        */
+        sprintf (buf, "str_realloc: Out of memory (%u bytes)", n + sizeof 
(size_t)) ;
+       mydie (a, buf) ;
+       }
 
     return m ;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to