From 718e5c16e17fb7501e448f0b0afac2098059dea5 Mon Sep 17 00:00:00 2001
From: PeiYong Zhang <peiyongz@apache.org>
Date: Thu, 25 Sep 2003 22:24:28 +0000
Subject: [PATCH] Using writeString/readString

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175229 13f79535-47bb-0310-9956-ffa450edef68
---
 src/xercesc/util/QName.cpp                  | 33 ++++++---------------
 src/xercesc/util/XMLAbstractDoubleFloat.cpp | 13 ++++----
 src/xercesc/util/XMLBigDecimal.cpp          | 23 +++++---------
 src/xercesc/util/XMLDateTime.cpp            | 18 ++++-------
 4 files changed, 28 insertions(+), 59 deletions(-)

diff --git a/src/xercesc/util/QName.cpp b/src/xercesc/util/QName.cpp
index 40b6c76ca..1f3f3f0c9 100644
--- a/src/xercesc/util/QName.cpp
+++ b/src/xercesc/util/QName.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.10  2003/09/25 22:24:28  peiyongz
+ * Using writeString/readString
+ *
  * Revision 1.9  2003/09/25 15:22:34  peiyongz
  * Implementation of Serialization
  *
@@ -501,18 +504,9 @@ void QName::serialize(XSerializeEngine& serEng)
 
     if (serEng.isStoring())
     {
-        int bufferLen = 0;
-
-        //note: buffer size is different from actual string length
-        serEng<<fPrefixBufSz;
-        bufferLen = XMLString::stringLen(fPrefix);
-        serEng<<bufferLen;
-        serEng.write(fPrefix, bufferLen);
+        serEng.writeString(fPrefix, fPrefixBufSz, XSerializeEngine::toWriteBufferLen);
 
-        serEng<<fLocalPartBufSz;
-        bufferLen = XMLString::stringLen(fLocalPart);
-        serEng<<bufferLen;
-        serEng.write(fLocalPart, bufferLen);
+        serEng.writeString(fLocalPart, fLocalPartBufSz, XSerializeEngine::toWriteBufferLen);
 
         //do not serialize rawName
 
@@ -520,26 +514,17 @@ void QName::serialize(XSerializeEngine& serEng)
     }
     else
     {
-        int bufferLen = 0;
+        int dataLen = 0;
 
-        serEng>>fPrefixBufSz;
-        fPrefix = (XMLCh*) fMemoryManager->allocate((fPrefixBufSz+1) * sizeof(XMLCh));
-        serEng>>bufferLen;
-        serEng.read(fPrefix, bufferLen);
-        fPrefix[bufferLen] = 0;
+        serEng.readString(fPrefix, (int&)fPrefixBufSz, dataLen, XSerializeEngine::toReadBufferLen);
 
-        serEng>>fLocalPartBufSz;
-        fLocalPart = (XMLCh*) fMemoryManager->allocate((fLocalPartBufSz+1) * sizeof(XMLCh));
-        serEng>>bufferLen;
-        serEng.read(fLocalPart, bufferLen);
-        fLocalPart[bufferLen] = 0;
+        serEng.readString(fLocalPart, (int&)fLocalPartBufSz, dataLen, XSerializeEngine::toReadBufferLen);
 
         //force raw name rebuilt
-        fRawNameBufSz = 0;
+        fRawNameBufSz = 0;        
         fRawName = 0;
 
         serEng>>fURIId;
-
     }
 
 }
diff --git a/src/xercesc/util/XMLAbstractDoubleFloat.cpp b/src/xercesc/util/XMLAbstractDoubleFloat.cpp
index 5d869069e..301731954 100644
--- a/src/xercesc/util/XMLAbstractDoubleFloat.cpp
+++ b/src/xercesc/util/XMLAbstractDoubleFloat.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.16  2003/09/25 22:24:28  peiyongz
+ * Using writeString/readString
+ *
  * Revision 1.15  2003/09/25 15:23:25  peiyongz
  * add sizeof(XMLCh) when allocating memory
  *
@@ -448,9 +451,7 @@ void XMLAbstractDoubleFloat::serialize(XSerializeEngine& serEng)
         serEng << fDataConverted;
         serEng << fSign;
 
-        int rawDataLen = XMLString::stringLen(fRawData);
-        serEng << rawDataLen;
-        serEng.write(fRawData, rawDataLen);
+        serEng.writeString(fRawData);
 
         // Do not serialize fFormattedString
 
@@ -466,11 +467,7 @@ void XMLAbstractDoubleFloat::serialize(XSerializeEngine& serEng)
         serEng >> fDataConverted;
         serEng >> fSign;
 
-        int rawDataLen = 0;
-        serEng >> rawDataLen;
-        fRawData = (XMLCh*) fMemoryManager->allocate((rawDataLen+1) * sizeof(XMLCh));
-        serEng.read(fRawData, rawDataLen);
-        fRawData[rawDataLen] = 0;
+        serEng.readString(fRawData);
 
         // Set it to 0 force it to re-format if needed
         fFormattedString = 0;
diff --git a/src/xercesc/util/XMLBigDecimal.cpp b/src/xercesc/util/XMLBigDecimal.cpp
index 613d95e9f..d582626fc 100644
--- a/src/xercesc/util/XMLBigDecimal.cpp
+++ b/src/xercesc/util/XMLBigDecimal.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.13  2003/09/25 22:24:28  peiyongz
+ * Using writeString/readString
+ *
  * Revision 1.12  2003/09/25 15:23:25  peiyongz
  * add sizeof(XMLCh) when allocating memory
  *
@@ -389,14 +392,10 @@ void XMLBigDecimal::serialize(XSerializeEngine& serEng)
         serEng<<fSign;
         serEng<<fTotalDigits;
         serEng<<fScale;
-        serEng<<fRawDataLen;
-
-        serEng.write(fRawData, fRawDataLen);
-
-        int intValLen = XMLString::stringLen(fIntVal);
-        serEng<<intValLen;
+        serEng<<fRawDataLen;   // we purposely write this seperatly
 
-        serEng.write(fIntVal, intValLen);
+        serEng.writeString(fRawData);
+        serEng.writeString(fIntVal);
 
     }
     else
@@ -406,15 +405,9 @@ void XMLBigDecimal::serialize(XSerializeEngine& serEng)
         serEng>>fScale;
         serEng>>fRawDataLen;
 
-        fRawData = (XMLCh*) fMemoryManager->allocate((fRawDataLen+1) * sizeof(XMLCh));
-        serEng.read(fRawData, fRawDataLen);
-        fRawData[fRawDataLen] = 0;
+        serEng.readString(fRawData);
+        serEng.readString(fIntVal);
 
-        int intValLen = 0;
-        serEng>>intValLen;
-        fIntVal = (XMLCh*) fMemoryManager->allocate((intValLen+1) * sizeof(XMLCh));
-        serEng.read(fIntVal, intValLen);
-        fIntVal[intValLen] = 0;
     }
 
 }
diff --git a/src/xercesc/util/XMLDateTime.cpp b/src/xercesc/util/XMLDateTime.cpp
index 54040a6f5..495d43141 100644
--- a/src/xercesc/util/XMLDateTime.cpp
+++ b/src/xercesc/util/XMLDateTime.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.16  2003/09/25 22:24:28  peiyongz
+ * Using writeString/readString
+ *
  * Revision 1.15  2003/09/25 15:22:54  peiyongz
  * Solve HP complier error
  *
@@ -1464,12 +1467,8 @@ void XMLDateTime::serialize(XSerializeEngine& serEng)
 
         serEng<<fStart;
         serEng<<fEnd;
-        serEng<<fBufferMaxLen;
-
-        int bufferLen = XMLString::stringLen(fBuffer);
-        serEng<<bufferLen;
-        serEng.write(fBuffer, bufferLen);
 
+        serEng.writeString(fBuffer, fBufferMaxLen, XSerializeEngine::toWriteBufferLen);
     }
     else
     {
@@ -1485,14 +1484,9 @@ void XMLDateTime::serialize(XSerializeEngine& serEng)
 
         serEng>>fStart;
         serEng>>fEnd;
-        serEng>>fBufferMaxLen;
-
-        fBuffer = (XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) * sizeof(XMLCh));
 
-        int bufferLen = 0;
-        serEng>>bufferLen;
-        serEng.read(fBuffer, bufferLen);
-        fBuffer[bufferLen] = 0;
+        int dataLen = 0;
+        serEng.readString(fBuffer, fBufferMaxLen, dataLen ,XSerializeEngine::toReadBufferLen);
 
     }
 
-- 
GitLab