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: [EMAIL PROTECTED]                                  |
+ |  Reported By: [EMAIL PROTECTED]                                         |
+ +----------------------------------------------------------------------------+
+ |          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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to