From 55c5492183c6191dd73be99013b0083be6a1b5be Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 31 Oct 2018 10:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86long=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a8/xvalue.cc | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/a8/xvalue.cc b/a8/xvalue.cc index 90852ca..54909f2 100644 --- a/a8/xvalue.cc +++ b/a8/xvalue.cc @@ -119,15 +119,21 @@ namespace a8 void XValue::Set(long v) { OnReset(); - type_ = XVT_INT; - value_.int_value = v; + if (sizeof(long) == 8) { + Set((long long)v); + } else { + Set((int)v); + } } void XValue::Set(unsigned int v) { OnReset(); - type_ = XVT_UINT; - value_.int_value = v; + if (sizeof(long) == 8) { + Set((unsigned long long)v); + } else { + Set((unsigned int)v); + } } void XValue::Set(unsigned long v) @@ -407,12 +413,20 @@ namespace a8 XValue::operator long() const { - return GetInt(); + if (sizeof(long) == 8) { + return GetInt64(); + } else { + return GetInt(); + } } XValue::operator unsigned long() const { - return GetUInt(); + if (sizeof(long) == 8) { + return GetUInt64(); + } else { + return GetUInt(); + } } XValue::operator double() const