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