Author: rleigh Date: Wed Jun 14 21:33:24 2017 New Revision: 1798773 URL: http://svn.apache.org/viewvc?rev=1798773&view=rev Log: xercesc: DOMCasts: Suppress cast alignment warnings
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMCasts.hpp Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMCasts.hpp URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMCasts.hpp?rev=1798773&r1=1798772&r2=1798773&view=diff ============================================================================== --- xerces/c/trunk/src/xercesc/dom/impl/DOMCasts.hpp (original) +++ xerces/c/trunk/src/xercesc/dom/impl/DOMCasts.hpp Wed Jun 14 21:33:24 2017 @@ -96,21 +96,29 @@ XERCES_CPP_NAMESPACE_BEGIN static inline DOMNodeImpl *castToNodeImpl(const DOMNode *p) { - DOMElementImpl *pE = (DOMElementImpl *)p; + // Note: hairy cast which is used for all node types, not just + // DOMElementImpl. + DOMElementImpl *pE = const_cast<DOMElementImpl *>(static_cast<const DOMElementImpl *>(p)); return &(pE->fNode); } static inline DOMParentNode *castToParentImpl(const DOMNode *p) { - DOMElementImpl *pE = (DOMElementImpl *)p; + // Note: hairy cast which is used for all node types, not just + // DOMElementImpl. + DOMElementImpl *pE = const_cast<DOMElementImpl *>(static_cast<const DOMElementImpl *>(p)); return &(pE->fParent); } static inline DOMChildNode *castToChildImpl(const DOMNode *p) { - DOMElementImpl *pE = (DOMElementImpl *)p; + // Note: hairy cast which is used for all node types, not just + // DOMElementImpl. + DOMElementImpl *pE = const_cast<DOMElementImpl *>(static_cast<const DOMElementImpl *>(p)); if (pE->fNode.isLeafNode()) { - DOMTextImpl *pT = (DOMTextImpl *)p; + // Note: hairy cast which is used for all leaf node types, not just + // DOMTextImpl. + DOMTextImpl *pT = const_cast<DOMTextImpl *>(static_cast<const DOMTextImpl *>(p)); return &(pT->fChild); } return &(pE->fChild); @@ -121,14 +129,14 @@ static inline DOMNode *castToNode(const DOMElementImpl* dummy = 0; XMLSize_t parentOffset = (char *)&(dummy->fParent) - (char *)dummy; char *retPtr = (char *)p - parentOffset; - return (DOMNode *)retPtr; + return reinterpret_cast<DOMNode *>(retPtr); } static inline DOMNode *castToNode(const DOMNodeImpl *p) { DOMElementImpl* dummy = 0; XMLSize_t nodeImplOffset = (char *)&(dummy->fNode) - (char *)dummy; char *retPtr = (char *)p - nodeImplOffset; - return (DOMNode *)retPtr; + return reinterpret_cast<DOMNode *>(retPtr); } @@ -138,7 +146,7 @@ static inline DOMNodeImpl *castToNodeImp XMLSize_t nodeImplOffset = (char *)&(dummy->fNode) - (char *)dummy; XMLSize_t parentOffset = (char *)&(dummy->fParent) - (char *)dummy; char *retPtr = (char *)p - parentOffset + nodeImplOffset; - return (DOMNodeImpl *)retPtr; + return reinterpret_cast<DOMNodeImpl *>(retPtr); } XERCES_CPP_NAMESPACE_END --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org