diff options
-rw-r--r-- | experimental/svg/SkSVGDevice.cpp | 2 | ||||
-rw-r--r-- | include/xml/SkXMLWriter.h | 17 | ||||
-rw-r--r-- | src/animator/SkXMLAnimatorWriter.cpp | 5 | ||||
-rw-r--r-- | src/animator/SkXMLAnimatorWriter.h | 9 | ||||
-rw-r--r-- | src/xml/SkXMLWriter.cpp | 21 |
5 files changed, 23 insertions, 31 deletions
diff --git a/experimental/svg/SkSVGDevice.cpp b/experimental/svg/SkSVGDevice.cpp index f3ac02d853..8d4ee4c05a 100644 --- a/experimental/svg/SkSVGDevice.cpp +++ b/experimental/svg/SkSVGDevice.cpp @@ -243,7 +243,7 @@ public: } void addText(const SkString& text) { - fWriter->addText(text.c_str()); + fWriter->addText(text.c_str(), text.size()); } void addRectAttributes(const SkRect&); diff --git a/include/xml/SkXMLWriter.h b/include/xml/SkXMLWriter.h index b33ccd75d7..6e3c7de79d 100644 --- a/include/xml/SkXMLWriter.h +++ b/include/xml/SkXMLWriter.h @@ -1,4 +1,3 @@ - /* * Copyright 2006 The Android Open Source Project * @@ -6,7 +5,6 @@ * found in the LICENSE file. */ - #ifndef SkXMLWriter_DEFINED #define SkXMLWriter_DEFINED @@ -27,7 +25,7 @@ public: void addAttributeLen(const char name[], const char value[], size_t length); void addHexAttribute(const char name[], uint32_t value, int minDigits = 0); void addScalarAttribute(const char name[], SkScalar value); - void addText(const char text[]); + void addText(const char text[], size_t length); void endElement() { this->onEndElement(); } void startElement(const char elem[]); void startElementLen(const char elem[], size_t length); @@ -38,7 +36,7 @@ public: protected: virtual void onStartElementLen(const char elem[], size_t length) = 0; virtual void onAddAttributeLen(const char name[], const char value[], size_t length) = 0; - virtual void onAddText(const char text[]) = 0; + virtual void onAddText(const char text[], size_t length) = 0; virtual void onEndElement() = 0; struct Elem { @@ -69,11 +67,12 @@ public: virtual ~SkXMLStreamWriter(); virtual void writeHeader(); SkDEBUGCODE(static void UnitTest();) + protected: - virtual void onStartElementLen(const char elem[], size_t length); - virtual void onEndElement(); - virtual void onAddAttributeLen(const char name[], const char value[], size_t length); - virtual void onAddText(const char text[]) SK_OVERRIDE; + void onStartElementLen(const char elem[], size_t length) SK_OVERRIDE; + void onEndElement() SK_OVERRIDE; + void onAddAttributeLen(const char name[], const char value[], size_t length) SK_OVERRIDE; + void onAddText(const char text[], size_t length) SK_OVERRIDE; private: SkWStream& fStream; @@ -87,7 +86,7 @@ protected: virtual void onStartElementLen(const char elem[], size_t length); virtual void onEndElement(); virtual void onAddAttributeLen(const char name[], const char value[], size_t length); - virtual void onAddText(const char text[]) SK_OVERRIDE; + virtual void onAddText(const char text[], size_t length) SK_OVERRIDE; private: SkXMLParser& fParser; }; diff --git a/src/animator/SkXMLAnimatorWriter.cpp b/src/animator/SkXMLAnimatorWriter.cpp index 9b552c09de..25b10a903d 100644 --- a/src/animator/SkXMLAnimatorWriter.cpp +++ b/src/animator/SkXMLAnimatorWriter.cpp @@ -1,4 +1,3 @@ - /* * Copyright 2006 The Android Open Source Project * @@ -6,7 +5,6 @@ * found in the LICENSE file. */ - #include "SkXMLAnimatorWriter.h" #include "SkAnimator.h" #include "SkAnimateMaker.h" @@ -26,8 +24,7 @@ void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[ fParser->onAddAttributeLen(name, value, length); } -void SkXMLAnimatorWriter::onAddText(const char text[]) -{ +void SkXMLAnimatorWriter::onAddText(const char text[], size_t length) { SkDebugf("not implemented: SkXMLAnimatorWriter::onAddText()\n"); } diff --git a/src/animator/SkXMLAnimatorWriter.h b/src/animator/SkXMLAnimatorWriter.h index 9cb596628d..1aedadae35 100644 --- a/src/animator/SkXMLAnimatorWriter.h +++ b/src/animator/SkXMLAnimatorWriter.h @@ -21,11 +21,12 @@ public: virtual ~SkXMLAnimatorWriter(); virtual void writeHeader(); SkDEBUGCODE(static void UnitTest(class SkCanvas* canvas);) + protected: - virtual void onAddAttributeLen(const char name[], const char value[], size_t length); - virtual void onEndElement(); - virtual void onStartElementLen(const char elem[], size_t length); - virtual void onAddText(const char text[]) SK_OVERRIDE; + void onAddAttributeLen(const char name[], const char value[], size_t length) SK_OVERRIDE; + void onEndElement() SK_OVERRIDE; + void onStartElementLen(const char elem[], size_t length) SK_OVERRIDE; + void onAddText(const char text[], size_t length) SK_OVERRIDE; private: SkAnimator* fAnimator; diff --git a/src/xml/SkXMLWriter.cpp b/src/xml/SkXMLWriter.cpp index 56e0889388..62e96687fe 100644 --- a/src/xml/SkXMLWriter.cpp +++ b/src/xml/SkXMLWriter.cpp @@ -1,4 +1,3 @@ - /* * Copyright 2006 The Android Open Source Project * @@ -6,7 +5,6 @@ * found in the LICENSE file. */ - #include "SkXMLWriter.h" #include "SkStream.h" @@ -51,14 +49,13 @@ void SkXMLWriter::addScalarAttribute(const char name[], SkScalar value) this->addAttribute(name, tmp.c_str()); } -void SkXMLWriter::addText(const char text[]) -{ +void SkXMLWriter::addText(const char text[], size_t length) { if (fElems.isEmpty()) { return; } - - this->onAddText(text); - + + this->onAddText(text, length); + fElems.top()->fHasText = true; } @@ -229,8 +226,7 @@ void SkXMLStreamWriter::onAddAttributeLen(const char name[], const char value[], fStream.writeText("\""); } -void SkXMLStreamWriter::onAddText(const char text[]) -{ +void SkXMLStreamWriter::onAddText(const char text[], size_t length) { Elem* elem = fElems.top(); if (!elem->fHasChildren && !elem->fHasText) { @@ -239,7 +235,7 @@ void SkXMLStreamWriter::onAddText(const char text[]) } tab(fStream, fElems.count() + 1); - fStream.writeText(text); + fStream.write(text, length); fStream.newline(); } @@ -302,9 +298,8 @@ void SkXMLParserWriter::onAddAttributeLen(const char name[], const char value[], fParser.addAttribute(name, str.c_str()); } -void SkXMLParserWriter::onAddText(const char text[]) -{ - fParser.text(text, SkToInt(strlen(text))); +void SkXMLParserWriter::onAddText(const char text[], size_t length) { + fParser.text(text, SkToInt(length)); } void SkXMLParserWriter::onEndElement() |