You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2001/08/07 17:01:35 UTC
[Bug 3018] New: - Using idom causes unaligned access errors on TRU64
PLEASE DO NOT REPLY TO THIS MESSAGE. TO FURTHER COMMENT
ON THE STATUS OF THIS BUG PLEASE FOLLOW THE LINK BELOW
AND USE THE ON-LINE APPLICATION. REPLYING TO THIS MESSAGE
DOES NOT UPDATE THE DATABASE, AND SO YOUR COMMENT WILL
BE LOST SOMEWHERE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3018
*** shadow/3018 Tue Aug 7 08:01:35 2001
--- shadow/3018.tmp.18261 Tue Aug 7 08:01:35 2001
***************
*** 0 ****
--- 1,51 ----
+ +============================================================================+
+ | Using idom causes unaligned access errors on TRU64 |
+ +----------------------------------------------------------------------------+
+ | Bug #: 3018 Product: Xerces-C++ |
+ | Status: NEW Version: 1.5.1 |
+ | Resolution: Platform: Alpha |
+ | Severity: Normal OS/Version: Other |
+ | Priority: Other Component: DOM |
+ +----------------------------------------------------------------------------+
+ | Assigned To: xerces-c-dev@xml.apache.org |
+ | Reported By: whitcomb@zk3.dec.com |
+ +----------------------------------------------------------------------------+
+ | URL: |
+ +============================================================================+
+ | DESCRIPTION |
+ I am using Xerces-C 1.5.1 on TRU64 Unix built using cxx v6.3. Running the idom
+ samples causes hundreds of unaligned access errors. I traced the problem to
+ the allocate function in idom/IDDocumentImpl.cpp. Making the following changes
+ resolves the problem:
+
+ *** IDDocumentImpl.cpp Wed Aug 1 15:19:13 2001
+ --- xml/xerces-c-src1_5_1/src/idom/IDDocumentImpl.cpp Thu Aug 2 10:43:07 2001
+ ***************
+ *** 858,863 ****
+ --- 858,867 ----
+
+ void * IDDocumentImpl::allocate(size_t amount)
+ {
+ + size_t sizeOfPointer = sizeof(void *);
+ + if (amount%sizeOfPointer!=0)
+ + amount = amount + (sizeOfPointer - (amount % sizeOfPointer));
+ +
+ // If the request is for a largish block, hand it off to the system
+ // allocator. The block still must be linked into the list of
+ // allocated blocks so that it will be deleted when the time comes.
+ ***************
+ *** 884,890 ****
+ fFreePtr = 0;
+ fFreeBytesRemaining = 0;
+ }
+ ! void *retPtr = (char *)newBlock + 4;
+ return retPtr;
+ }
+
+ --- 888,894 ----
+ fFreePtr = 0;
+ fFreeBytesRemaining = 0;
+ }
+ ! void *retPtr = (char *)newBlock + sizeOfPointer;
+ return retPtr;
+ }
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org