You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by sc...@apache.org on 2017/07/18 01:12:46 UTC

svn commit: r1802231 - /xerces/c/trunk/src/xercesc/util/TransService.cpp

Author: scantor
Date: Tue Jul 18 01:12:46 2017
New Revision: 1802231

URL: http://svn.apache.org/viewvc?rev=1802231&view=rev
Log:
XERCESC-2038 - Problems with TranscodeToStr

Modified:
    xerces/c/trunk/src/xercesc/util/TransService.cpp

Modified: xerces/c/trunk/src/xercesc/util/TransService.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/util/TransService.cpp?rev=1802231&r1=1802230&r2=1802231&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/TransService.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/TransService.cpp Tue Jul 18 01:12:46 2017
@@ -552,13 +552,23 @@ XMLLCPTranscoder::~XMLLCPTranscoder()
 TranscodeToStr::TranscodeToStr(const XMLCh *in, const char *encoding,
                                MemoryManager *manager)
     : fString(0),
-	  fBytesWritten(0),
+      fBytesWritten(0),
       fMemoryManager(manager)
 {
     XMLTransService::Codes failReason;
     const XMLSize_t blockSize = 2048;
 
     XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, failReason, blockSize, fMemoryManager);
+    if (!trans) {
+        ThrowXMLwithMemMgr1
+        (
+            TranscodingException
+            , XMLExcepts::Trans_CantCreateCvtrFor
+            , encoding 
+            , fMemoryManager
+        );
+    }    
+
     Janitor<XMLTranscoder> janTrans(trans);
 
     transcode(in, XMLString::stringLen(in), trans);
@@ -567,13 +577,23 @@ TranscodeToStr::TranscodeToStr(const XML
 TranscodeToStr::TranscodeToStr(const XMLCh *in, XMLSize_t length, const char *encoding,
                                MemoryManager *manager)
     : fString(0),
-	  fBytesWritten(0),
+      fBytesWritten(0),
       fMemoryManager(manager)
 {
     XMLTransService::Codes failReason;
     const XMLSize_t blockSize = 2048;
 
     XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, failReason, blockSize, fMemoryManager);
+    if (!trans) {
+        ThrowXMLwithMemMgr1
+        (
+            TranscodingException
+            , XMLExcepts::Trans_CantCreateCvtrFor
+            , encoding
+            , fMemoryManager
+        );
+    }
+
     Janitor<XMLTranscoder> janTrans(trans);
 
     transcode(in, length, trans);
@@ -582,7 +602,7 @@ TranscodeToStr::TranscodeToStr(const XML
 TranscodeToStr::TranscodeToStr(const XMLCh *in, XMLTranscoder* trans,
                                MemoryManager *manager)
     : fString(0),
-	  fBytesWritten(0),
+      fBytesWritten(0),
       fMemoryManager(manager)
 {
     transcode(in, XMLString::stringLen(in), trans);
@@ -591,7 +611,7 @@ TranscodeToStr::TranscodeToStr(const XML
 TranscodeToStr::TranscodeToStr(const XMLCh *in, XMLSize_t length, XMLTranscoder* trans,
                                MemoryManager *manager)
     : fString(0),
-	  fBytesWritten(0),
+      fBytesWritten(0),
       fMemoryManager(manager)
 {
     transcode(in, length, trans);
@@ -658,13 +678,23 @@ void TranscodeToStr::transcode(const XML
 TranscodeFromStr::TranscodeFromStr(const XMLByte *data, XMLSize_t length, const char *encoding,
                                    MemoryManager *manager)
     : fString(0),
-	  fCharsWritten(0),
+      fCharsWritten(0),
       fMemoryManager(manager)
 {
     XMLTransService::Codes failReason;
     const XMLSize_t blockSize = 2048;
 
     XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, failReason, blockSize, fMemoryManager);
+    if (!trans) {
+        ThrowXMLwithMemMgr1
+        (
+            TranscodingException
+            , XMLExcepts::Trans_CantCreateCvtrFor
+            , encoding
+            , fMemoryManager
+        );
+    }
+
     Janitor<XMLTranscoder> janTrans(trans);
 
     transcode(data, length, trans);
@@ -673,7 +703,7 @@ TranscodeFromStr::TranscodeFromStr(const
 TranscodeFromStr::TranscodeFromStr(const XMLByte *data, XMLSize_t length, XMLTranscoder *trans,
                                    MemoryManager *manager)
     : fString(0),
-	  fCharsWritten(0),
+      fCharsWritten(0),
       fMemoryManager(manager)
 {
     transcode(data, length, trans);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org