Variant f_base_convert(CStrRef number, int64_t frombase, int64_t tobase) { if (!string_validate_base(frombase)) { throw_invalid_argument("Invalid frombase: %d", frombase); return false; } if (!string_validate_base(tobase)) { throw_invalid_argument("Invalid tobase: %d", tobase); return false; } Variant v = string_base_to_numeric(number.data(), number.size(), frombase); return String(string_numeric_to_base(v, tobase), AttachString); }
Variant HHVM_FUNCTION(base_convert, const Variant& number, int64_t frombase, int64_t tobase) { if (!string_validate_base(frombase)) { throw_invalid_argument("Invalid frombase: %" PRId64, frombase); return false; } if (!string_validate_base(tobase)) { throw_invalid_argument("Invalid tobase: %" PRId64, tobase); return false; } String str = number.toString(); Variant v = string_base_to_numeric(str.data(), str.size(), frombase); return string_numeric_to_base(v, tobase); }