MAPM XQNumericLiteral::getValue() const { // Use the C API to copy our fake MAPM MAPM copy; m_apm_copy(const_cast<M_APM>(copy.c_struct()), const_cast<M_APM>(&value_)); return copy; }
XQNumericLiteral::XQNumericLiteral(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr) : ASTNodeImpl(NUMERIC_LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), primitiveType_(primitiveType) { _src.getStaticType() = StaticType::create(primitiveType_); memset(&value_, 0, sizeof(value_)); const M_APM cval = value.c_struct(); value_.m_apm_datalength = cval->m_apm_datalength; value_.m_apm_exponent = cval->m_apm_exponent; value_.m_apm_sign = cval->m_apm_sign; int len = (cval->m_apm_datalength + 1) >> 1; value_.m_apm_data = (UCHAR*)memMgr->allocate(len); memcpy(value_.m_apm_data, cval->m_apm_data, len); }