Remove equalAsStr (perflab can't detect the optimization)
There is only a single call-site for all of this thing. I figured perflab could be the judge on whether to reimplement the usage in a more reasonable way, or just delete it---looks like option 2 is good.
Esse commit está contido em:
@@ -133,70 +133,6 @@ bool equal(int64_t v1, const StringData *v2) {
|
||||
}
|
||||
}
|
||||
|
||||
bool equalAsStr(bool v1, const StringData *v2) {
|
||||
return same(toString(v1), v2);
|
||||
}
|
||||
|
||||
bool equalAsStr(int v1, const StringData *v2) {
|
||||
char tmpbuf[12];
|
||||
char *p;
|
||||
int is_negative;
|
||||
int len;
|
||||
const StringData *sd = String::GetIntegerStringData(v1);
|
||||
if (sd) {
|
||||
p = (char *)sd->data();
|
||||
len = sd->size();
|
||||
} else {
|
||||
p = conv_10(v1, &is_negative, &tmpbuf[11], &len);
|
||||
}
|
||||
if (len != v2->size()) {
|
||||
return false;
|
||||
}
|
||||
return memcmp(p, v2->data(), len) == 0;
|
||||
}
|
||||
|
||||
bool equalAsStr(int64_t v1, const StringData *v2) {
|
||||
char tmpbuf[21];
|
||||
char *p;
|
||||
int is_negative;
|
||||
int len;
|
||||
const StringData *sd = String::GetIntegerStringData(v1);
|
||||
if (sd) {
|
||||
p = (char *)sd->data();
|
||||
len = sd->size();
|
||||
} else {
|
||||
p = conv_10(v1, &is_negative, &tmpbuf[20], &len);
|
||||
}
|
||||
if (len != v2->size()) {
|
||||
return false;
|
||||
}
|
||||
return memcmp(p, v2->data(), len) == 0;
|
||||
}
|
||||
|
||||
bool equalAsStr(int64_t v1, litstr v2) {
|
||||
char tmpbuf[21];
|
||||
char *p;
|
||||
int is_negative;
|
||||
int len;
|
||||
const StringData *sd = String::GetIntegerStringData(v1);
|
||||
if (sd) {
|
||||
p = (char *)sd->data();
|
||||
len = sd->size();
|
||||
} else {
|
||||
tmpbuf[20] = '\0';
|
||||
p = conv_10(v1, &is_negative, &tmpbuf[20], &len);
|
||||
}
|
||||
return strcmp(p, v2) == 0;
|
||||
}
|
||||
|
||||
bool equalAsStr(double v1, const StringData *v2) {
|
||||
return equalAsStr(v2, String(v1));
|
||||
}
|
||||
|
||||
bool equalAsStr(double v1, litstr v2) {
|
||||
return same(String(v1), v2);
|
||||
}
|
||||
|
||||
bool less(int v1, const StringData *v2) {
|
||||
return less((int64_t)v1, v2);
|
||||
}
|
||||
|
||||
@@ -63,20 +63,6 @@ inline bool equal(CVarRef v1, CVarRef v2) {
|
||||
return tvEqual(v1.asTypedValue(), v2.asTypedValue());
|
||||
}
|
||||
|
||||
inline bool equalAsStr(CVarRef v1, bool v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, int v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, int64_t v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, double v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, const StringData *v2) {
|
||||
return v1.equalAsStr(v2);
|
||||
}
|
||||
inline bool equalAsStr(CVarRef v1, CStrRef v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, litstr v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, CArrRef v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, CObjRef v2) { return v1.equalAsStr(v2);}
|
||||
inline bool equalAsStr(CVarRef v1, CVarRef v2) { return v1.equalAsStr(v2);}
|
||||
|
||||
|
||||
inline bool less(CVarRef v1, bool v2) {
|
||||
return cellLess(v1.asCell(), v2);
|
||||
}
|
||||
@@ -166,20 +152,6 @@ inline bool equal(bool v1, CArrRef v2) { return v1 == v2.toBoolean();}
|
||||
inline bool equal(bool v1, CObjRef v2) { return v1 == v2.toBoolean();}
|
||||
inline bool equal(bool v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(bool v1, bool v2) { return v1 == v2;}
|
||||
inline bool equalAsStr(bool v1, int v2) { return v1 && v2 == 1;}
|
||||
inline bool equalAsStr(bool v1, int64_t v2) { return v1 && v2 == 1;}
|
||||
inline bool equalAsStr(bool v1, double v2) { return v1 && v2 == 1;}
|
||||
bool equalAsStr(bool v1, const StringData *v2);
|
||||
inline bool equalAsStr(bool v1, CStrRef v2) { return equalAsStr(v1, v2.get());}
|
||||
inline bool equalAsStr(bool v1, litstr v2) {
|
||||
return equalAsStr(v1, String(v2));
|
||||
}
|
||||
inline bool equalAsStr(bool v1, CArrRef v2) { return false;}
|
||||
inline bool equalAsStr(bool v1, CObjRef v2) { return false;}
|
||||
inline bool equalAsStr(bool v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
|
||||
inline bool less(bool v1, bool v2) { return (v1?1:0) < (v2?1:0);}
|
||||
inline bool less(bool v1, int v2) { return less(v1,(v2 != 0));}
|
||||
inline bool less(bool v1, int64_t v2) { return less(v1,(v2 != 0));}
|
||||
@@ -233,19 +205,6 @@ inline bool equal(int v1, CObjRef v2) {
|
||||
}
|
||||
inline bool equal(int v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(int v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(int v1, int v2) { return v1 == v2;}
|
||||
inline bool equalAsStr(int v1, int64_t v2) { return v1 == v2;}
|
||||
inline bool equalAsStr(int v1, double v2) { return v1 == v2;}
|
||||
bool equalAsStr(int v1, const StringData *v2);
|
||||
inline bool equalAsStr(int v1, CStrRef v2) { return equalAsStr(v1, v2.get());}
|
||||
inline bool equalAsStr(int v1, litstr v2) { return equalAsStr(v1, String(v2));}
|
||||
inline bool equalAsStr(int v1, CArrRef v2) { return false;}
|
||||
inline bool equalAsStr(int v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(int v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
inline bool less(int v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(int v1, int v2) { return v1 < v2;}
|
||||
inline bool less(int v1, int64_t v2) { return v1 < v2;}
|
||||
@@ -299,22 +258,6 @@ inline bool equal(int64_t v1, CObjRef v2) {
|
||||
}
|
||||
inline bool equal(int64_t v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(int64_t v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(int64_t v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(int64_t v1, int64_t v2) { return v1 == v2;}
|
||||
inline bool equalAsStr(int64_t v1, double v2) {
|
||||
return v1 == v2 && v1 == (int64_t)v2;
|
||||
}
|
||||
bool equalAsStr(int64_t v1, const StringData *v2);
|
||||
inline bool equalAsStr(int64_t v1, CStrRef v2) { return equalAsStr(v1, v2.get());}
|
||||
bool equalAsStr(int64_t v1, litstr v2);
|
||||
inline bool equalAsStr(int64_t v1, CArrRef v2) { return false;}
|
||||
inline bool equalAsStr(int64_t v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(int64_t v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
|
||||
inline bool less(int64_t v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(int64_t v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(int64_t v1, int64_t v2) { return v1 < v2;}
|
||||
@@ -371,22 +314,6 @@ inline bool equal(double v1, CObjRef v2) {
|
||||
}
|
||||
inline bool equal(double v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(double v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(double v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(double v1, int64_t v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(double v1, double v2) { return v1 == v2;}
|
||||
bool equalAsStr(double v1, const StringData *v2);
|
||||
inline bool equalAsStr(double v1, CStrRef v2) {
|
||||
return equalAsStr(v1, v2.get());
|
||||
}
|
||||
bool equalAsStr(double v1, litstr v2);
|
||||
inline bool equalAsStr(double v1, CArrRef v2) { return false;}
|
||||
inline bool equalAsStr(double v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(double v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
|
||||
inline bool less(double v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(double v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(double v1, int64_t v2) { return more(v2, v1);}
|
||||
@@ -478,37 +405,6 @@ inline bool equal(const StringData *v1, CObjRef v2) {
|
||||
}
|
||||
inline bool equal(const StringData *v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(const StringData *v1, bool v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, int v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, int64_t v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, double v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, const StringData *v2) {
|
||||
return same(v1, v2);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, CStrRef v2) {
|
||||
return equalAsStr(v1, v2.get());
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, litstr v2) {
|
||||
return same(v1, v2);
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, CArrRef v2) {
|
||||
return equalAsStr(v1, "Array");
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(const StringData *v1, CVarRef v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
|
||||
inline bool less(const StringData *v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(const StringData *v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(const StringData *v1, int64_t v2) { return more(v2, v1);}
|
||||
@@ -612,25 +508,6 @@ inline bool equal(CStrRef v1, CArrRef v2) { return v1.equal(v2);}
|
||||
inline bool equal(CStrRef v1, CObjRef v2) { return v1.equal(v2);}
|
||||
inline bool equal(CStrRef v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(CStrRef v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CStrRef v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CStrRef v1, int64_t v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CStrRef v1, double v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CStrRef v1, const StringData *v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(CStrRef v1, CStrRef v2) { return same(v1, v2);}
|
||||
inline bool equalAsStr(CStrRef v1, litstr v2) {
|
||||
return equalAsStr(v1, String(v2));
|
||||
}
|
||||
inline bool equalAsStr(CStrRef v1, CArrRef v2) {
|
||||
return equalAsStr(v1.get(), v2);
|
||||
}
|
||||
inline bool equalAsStr(CStrRef v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(CStrRef v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
inline bool less(CStrRef v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(CStrRef v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(CStrRef v1, int64_t v2) { return more(v2, v1);}
|
||||
@@ -688,24 +565,6 @@ inline bool equal(litstr v1, CArrRef v2) { return equal(String(v1),v2);}
|
||||
inline bool equal(litstr v1, CObjRef v2) { return equal(String(v1),v2);}
|
||||
inline bool equal(litstr v1, CVarRef v2) { return equal(String(v1),v2);}
|
||||
|
||||
inline bool equalAsStr(litstr v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(litstr v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(litstr v1, int64_t v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(litstr v1, double v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(litstr v1, const StringData *v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(litstr v1, CStrRef v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(litstr v1, litstr v2) { return same(v1, v2);}
|
||||
inline bool equalAsStr(litstr v1, CArrRef v2) {
|
||||
StackStringData sd1(v1);
|
||||
return equalAsStr(&sd1, v2);
|
||||
}
|
||||
inline bool equalAsStr(litstr v1, CObjRef v2) {
|
||||
return equalAsStr(v1, v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(litstr v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
inline bool less(litstr v1, bool v2) { return less(String(v1), v2);}
|
||||
inline bool less(litstr v1, int v2) { return less(String(v1), v2);}
|
||||
inline bool less(litstr v1, int64_t v2) { return less(String(v1), v2);}
|
||||
@@ -759,21 +618,6 @@ inline bool equal(CArrRef v1, CArrRef v2) { return v1.equal(v2);}
|
||||
inline bool equal(CArrRef v1, CObjRef v2) { return v1.equal(v2);}
|
||||
inline bool equal(CArrRef v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(CArrRef v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, int64_t v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, double v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, const StringData *v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(CArrRef v1, CStrRef v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, litstr v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CArrRef v1, CArrRef v2) { return true;}
|
||||
inline bool equalAsStr(CArrRef v1, CObjRef v2) {
|
||||
return equalAsStr("Array", v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(CArrRef v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
inline bool less(CArrRef v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(CArrRef v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(CArrRef v1, int64_t v2) { return more(v2, v1);}
|
||||
@@ -821,21 +665,6 @@ inline bool equal(CObjRef v1, CArrRef v2) { return equal(v2, v1);}
|
||||
inline bool equal(CObjRef v1, CObjRef v2) { return v1.equal(v2);}
|
||||
inline bool equal(CObjRef v1, CVarRef v2) { return equal(v2, v1);}
|
||||
|
||||
inline bool equalAsStr(CObjRef v1, bool v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, int v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, int64_t v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, double v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, const StringData *v2) {
|
||||
return equalAsStr(v2, v1);
|
||||
}
|
||||
inline bool equalAsStr(CObjRef v1, CStrRef v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, litstr v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, CArrRef v2) { return equalAsStr(v2, v1);}
|
||||
inline bool equalAsStr(CObjRef v1, CObjRef v2) {
|
||||
return equalAsStr(v1.toString(), v2.toString());
|
||||
}
|
||||
inline bool equalAsStr(CObjRef v1, CVarRef v2) { return equalAsStr(v2, v1);}
|
||||
|
||||
inline bool less(CObjRef v1, bool v2) { return more(v2, v1);}
|
||||
inline bool less(CObjRef v1, int v2) { return more(v2, v1);}
|
||||
inline bool less(CObjRef v1, int64_t v2) { return more(v2, v1);}
|
||||
|
||||
@@ -135,7 +135,7 @@ Array Array::intersect(CVarRef array, bool by_key, bool by_value,
|
||||
}
|
||||
|
||||
int Array::CompareAsStrings(CVarRef v1, CVarRef v2, const void *data) {
|
||||
return equalAsStr(v1, v2) ? 0 : -1;
|
||||
return HPHP::same(HPHP::toString(v1), HPHP::toString(v2)) ? 0 : -1;
|
||||
}
|
||||
|
||||
Array Array::diffImpl(CArrRef array, bool by_key, bool by_value, bool match,
|
||||
|
||||
@@ -1525,41 +1525,6 @@ Variant::operator Object() const {
|
||||
return toObject();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Array needs to convert to "Array" and Object to String
|
||||
#define UNWRAP_STRING(reverse) \
|
||||
auto const cell = asCell(); \
|
||||
switch (cell->m_type) { \
|
||||
case KindOfUninit: \
|
||||
case KindOfNull: return HPHP::reverse(v2, empty_string); \
|
||||
case KindOfBoolean: return HPHP::reverse(v2, !!cell->m_data.num); \
|
||||
case KindOfInt64: return HPHP::reverse(v2, cell->m_data.num); \
|
||||
case KindOfDouble: return HPHP::reverse(v2, cell->m_data.dbl); \
|
||||
case KindOfStaticString: \
|
||||
case KindOfString: return HPHP::reverse(v2, cell->m_data.pstr); \
|
||||
case KindOfArray: return HPHP::reverse(v2, s_array); \
|
||||
case KindOfObject: \
|
||||
return HPHP::reverse(v2, Object(cell->m_data.pobj).toString()); \
|
||||
default: \
|
||||
assert(false); \
|
||||
break; \
|
||||
} \
|
||||
return false;
|
||||
|
||||
bool Variant::equalAsStr(bool v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(int v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(int64_t v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(double v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(litstr v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(const StringData *v2) const {
|
||||
UNWRAP_STRING(equalAsStr);
|
||||
}
|
||||
bool Variant::equalAsStr(CStrRef v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(CArrRef v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(CObjRef v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
bool Variant::equalAsStr(CVarRef v2) const { UNWRAP_STRING(equalAsStr);}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// offset functions
|
||||
|
||||
|
||||
@@ -697,21 +697,6 @@ class Variant : private TypedValue {
|
||||
return ObjNR(getObjectData());
|
||||
}
|
||||
|
||||
/*
|
||||
* Comparisons
|
||||
*/
|
||||
|
||||
bool equalAsStr(bool v2) const;
|
||||
bool equalAsStr(int v2) const;
|
||||
bool equalAsStr(int64_t v2) const;
|
||||
bool equalAsStr(double v2) const;
|
||||
bool equalAsStr(litstr v2) const;
|
||||
bool equalAsStr(const StringData *v2) const;
|
||||
bool equalAsStr(CStrRef v2) const;
|
||||
bool equalAsStr(CArrRef v2) const;
|
||||
bool equalAsStr(CObjRef v2) const;
|
||||
bool equalAsStr(CVarRef v2) const;
|
||||
|
||||
/**
|
||||
* Output functions
|
||||
*/
|
||||
|
||||
@@ -44,7 +44,6 @@ bool TestCppBase::RunTests(const std::string &which) {
|
||||
RUN_TEST(TestObject);
|
||||
RUN_TEST(TestVariant);
|
||||
RUN_TEST(TestIpBlockMap);
|
||||
RUN_TEST(TestEqualAsStr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -942,37 +941,3 @@ bool TestCppBase::TestIpBlockMap() {
|
||||
|
||||
return Count(true);
|
||||
}
|
||||
|
||||
bool TestCppBase::TestEqualAsStr() {
|
||||
|
||||
const int arr_len = 18;
|
||||
Variant var_array[arr_len];
|
||||
var_array[0] = false;
|
||||
var_array[1] = true;
|
||||
var_array[2] = 0;
|
||||
var_array[3] = 1;
|
||||
var_array[4] = 42;
|
||||
var_array[5] = 0.0;
|
||||
var_array[6] = 1.0;
|
||||
var_array[7] = 42.2;
|
||||
var_array[8] = String("0");
|
||||
var_array[9] = String("1");
|
||||
var_array[10] = String("42");
|
||||
var_array[11] = String("x");
|
||||
var_array[12] = Array::Create();
|
||||
Variant v1("original");
|
||||
var_array[13] = v1;
|
||||
Variant v2("changed");
|
||||
var_array[14] = v2;
|
||||
var_array[15] = empty_string;
|
||||
var_array[16] = String("Array");
|
||||
var_array[17] = String("ARRAY");
|
||||
for (int i = 0; i < arr_len; i++) {
|
||||
for (int j = 0; j < arr_len; j++) {
|
||||
bool eqAsStr = equalAsStr(var_array[i], var_array[j]);
|
||||
bool sm = same(toString(var_array[i]), toString(var_array[j]));
|
||||
VERIFY(eqAsStr == sm);
|
||||
}
|
||||
}
|
||||
return Count(true);
|
||||
}
|
||||
|
||||
@@ -58,9 +58,6 @@ class TestCppBase : public TestBase {
|
||||
bool TestObject();
|
||||
bool TestVariant();
|
||||
bool TestListAssignment();
|
||||
|
||||
// EqualAsStr functions
|
||||
bool TestEqualAsStr();
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário