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