[EMAIL PROTECTED] wrote:
> David thank you for response my question ,
>
> 1. this is core dump stack trace
>
> -- Last Stack Trace
> ---------------------------------------------------------------
> .() at 0x0
This means the program is trying to execute code at address 0, so there
is likely a null pointer to an object.
> XMLString.transcode__Q2_11xercesc_2_89XMLStringFCPCcCPQ2_11xercesc_2_813MemoryManager()
> at 0x10108810
> InputSource.__ct__Q2_11xercesc_2_811InputSourceFCPCcCPQ2_11xercesc_2_813MemoryManager()
> at 0x101afc98
> MemBufInputSource.__ct__Q2_11xercesc_2_817MemBufInputSourceFCPCUcCUiCPCcCbCPQ2_11xercesc_2_813MemoryManager()
> at 0x102fccfc
> bss_ECNS_parseXML.bss_ECNS_parseXML__15BS_PPTManager_iFR25bssObjXMLparse_out_structRC21pptObjCommonIn_structPCcRC28_IDL_SEQUENCE_xmlContextInfoRC22_IDL_SEQUENCE_pptUData(0x3319b4d8,
> 0x33776108, 0x3378e0f8, 0x34922988, 0x337a8100, 0x337a8110) at 0x1009af10
Please make sure you're not initializing and terminating Xerces-C in
each thread. That is explicitly not thread-safe. It may be that the
MemoryManager instance is null, or the transcoding system is not
initialized.
>
> 2. I use while loop for parse xml string , and combine xmlstring
>
> 3. In my parse XML function I already defind inline function X for release
> XMLString::transcode
> class XStr
> {
> public :
> XStr(const char* const toTranscode)
> {
> fUnicodeForm = XMLString::transcode(toTranscode);
> }
> ~XStr()
> {
> XMLString::release(&fUnicodeForm);
> }
> const XMLCh* unicodeForm() const
> {
> return fUnicodeForm;
> }
> private :
> XMLCh* fUnicodeForm;
> };
>
> #define X(str) XStr(str).unicodeForm()
Using this macro is very inefficient. There are previous message
threads on the user list that discuss creating compile-time UTF-16
string constants. Also, please make sure you read the threads regarding
XMLString::transcode() and issues with the local code page.
>
> 4. mem_controlx is smart point object
> for control memory from XMLString::transcode( XML CH * ) return
Then why not have an accessor function that returns const char*, rather
than relying on brute-force C-style casting?
Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]