mike            Tue Jul 25 22:57:31 2006 UTC

  Modified files:              
    /php-src/ext/tidy   tidy.c 
  Log:
  - reduce memory footprint
  
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.90&r2=1.91&diff_format=u
Index: php-src/ext/tidy/tidy.c
diff -u php-src/ext/tidy/tidy.c:1.90 php-src/ext/tidy/tidy.c:1.91
--- php-src/ext/tidy/tidy.c:1.90        Sat Jul  8 00:04:37 2006
+++ php-src/ext/tidy/tidy.c     Tue Jul 25 22:57:31 2006
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: tidy.c,v 1.90 2006/07/08 00:04:37 nlopess Exp $ */
+/* $Id: tidy.c,v 1.91 2006/07/25 22:57:31 mike Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -46,6 +46,7 @@
 /* {{{ ext/tidy macros
 */
 #define REMOVE_NEWLINE(_z) _z->value.str.val[_z->value.str.len-1] = '\0'; 
_z->value.str.len--;
+#define FIX_BUFFER(bptr) (bptr)->bp[(bptr)->size-1] = '\0'
 
 #define TIDYDOC_FROM_OBJECT(tdoc, object) \
        { \
@@ -478,7 +479,7 @@
                TidyBuffer buf = {0};
                
                tidyBufInit(&buf);
-               tidyBufAppend(&buf, data, data_len);
+               tidyBufAttach(&buf, data, data_len);
                
                if (tidyParseBuffer(doc, &buf) < 0) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", 
errbuf->bp);
@@ -488,14 +489,12 @@
                                TidyBuffer output = {0};
 
                                tidySaveBuffer (doc, &output);
-                               RETVAL_STRINGL(output.bp, output.size-1, 1);
-                               tidyBufFree(&output);
+                               FIX_BUFFER(&output);
+                               RETVAL_STRINGL(output.bp, output.size-1, 0);
                        } else {
                                RETVAL_FALSE;
                        }
                }
-               
-               tidyBufFree(&buf);
        }
 
        if (is_file) {
@@ -662,8 +661,7 @@
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
                        tidySaveBuffer (obj->ptdoc->doc, &output);
-                       ZVAL_STRINGL(out, output.bp, output.size-1, TRUE);
-                       tidyBufFree(&output);
+                       ZVAL_STRINGL(out, output.bp, output.size, 0);
                        break;
 
                default:
@@ -694,8 +692,7 @@
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
                        tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
-                       ZVAL_STRINGL(out, buf.bp, buf.size-1, TRUE);
-                       tidyBufFree(&buf);
+                       ZVAL_STRINGL(out, buf.bp, buf.size, 0);
                        break;
 
                default:
@@ -715,11 +712,9 @@
        
        if (output.size) {
                MAKE_STD_ZVAL(temp);
-               ZVAL_STRINGL(temp, output.bp, output.size-1, TRUE);
+               ZVAL_STRINGL(temp, output.bp, output.size, 0);
                zend_hash_update(obj->std.properties, "value", sizeof("value"), 
(void *)&temp, sizeof(zval *), NULL);
        }
-       
-       tidyBufFree(&output);
 
        if (obj->ptdoc->errbuf->size) {
                MAKE_STD_ZVAL(temp);
@@ -935,14 +930,12 @@
        }
        
        tidyBufInit(&buf);
-       tidyBufAppend(&buf, string, len);
+       tidyBufAttach(&buf, string, len);
        if (tidyParseBuffer(obj->ptdoc->doc, &buf) < 0) {
-               tidyBufFree(&buf);
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", 
obj->ptdoc->errbuf->bp);
                return FAILURE;
        
        }
-       tidyBufFree(&buf);
        tidy_doc_update_properties(obj TSRMLS_CC);
 
        return SUCCESS;
@@ -994,7 +987,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Tidy support", "enabled");
        php_info_print_table_row(2, "libTidy Release", (char 
*)tidyReleaseDate());
-       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.90 2006/07/08 00:04:37 nlopess Exp 
$)");
+       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.91 2006/07/25 22:57:31 mike Exp $)");
        php_info_print_table_end();
 
        DISPLAY_INI_ENTRIES();
@@ -1031,7 +1024,7 @@
                TidyBuffer buf = {0};
                
                tidyBufInit(&buf);
-               tidyBufAppend(&buf, input, input_len);
+               tidyBufAttach(&buf, input, input_len);
                
                if (tidyParseBuffer(doc, &buf) < 0 || tidyCleanAndRepair(doc) < 
0) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", 
errbuf.bp);
@@ -1041,12 +1034,9 @@
                        tidyBufInit(&output);
 
                        tidySaveBuffer(doc, &output);
-                       RETVAL_STRINGL(output.bp, output.size-1, 1);
-
-                       tidyBufFree(&output);
+                       FIX_BUFFER(&output);
+                       RETVAL_STRINGL(output.bp, output.size-1, 0);
                }
-               
-               tidyBufFree(&buf);
        } else {
                RETVAL_NULL();
        }
@@ -1107,10 +1097,8 @@
        TIDY_FETCH_OBJECT;
 
        tidySaveBuffer(obj->ptdoc->doc, &output);
-
-       RETVAL_STRINGL(output.bp, output.size-1, 1);
-
-       tidyBufFree(&output);
+       FIX_BUFFER(&output);
+       RETVAL_STRINGL(output.bp, output.size-1, 0);
 }
 /* }}} */
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to