Grow a buffer for string normalization exponentially.

* dom/dom-builder.lisp (DOM-BUILDER): New slot `text-buffer'.
	(SAX:START-ELEMENT, SAX:END-ELEMENT, SAX:START-CDATA,
	SAX:END-CDATA, SAX:PROCESSING-INSTRUCTION, SAX:COMMENT): Call
	flush-characters.  (SAX:CHARACTERS): Rewritten.
	(FLUSH-CHARACTERS): New, based on the old sax:characters.

	* dom/dom-impl.lisp ((initialize-instance :after entity-reference)):
	Call flush-characters.
This commit is contained in:
dlichteblau
2007-10-03 15:17:08 +00:00
parent a2990d65ce
commit e7884fc9f7
2 changed files with 42 additions and 18 deletions

View File

@ -1247,7 +1247,8 @@
(push instance (element-stack handler))
#+cxml-system::utf8dom-file
(setf handler (cxml:make-recoder handler #'cxml:rod-to-utf8-string))
(funcall resolver (real-rod (dom:name instance)) handler)))
(funcall resolver (real-rod (dom:name instance)) handler)
(flush-characters handler)))
(labels ((walk (n)
(setf (slot-value n 'read-only-p) t)
(when (dom:element-p n)