Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(654)

Unified Diff: runtime/vm/bigint_test.cc

Issue 2449013003: Don't allocate on the Dart heap during Bigint::ToCString(). (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/bigint_test.cc
diff --git a/runtime/vm/bigint_test.cc b/runtime/vm/bigint_test.cc
index 967e036619779e942a30c150fce769135d03c55a..21ba79bb577aaa2ed535197218cfafb888ec9a02 100644
--- a/runtime/vm/bigint_test.cc
+++ b/runtime/vm/bigint_test.cc
@@ -9,12 +9,6 @@
namespace dart {
-static uword ZoneAllocator(intptr_t size) {
- Zone* zone = Thread::Current()->zone();
- return zone->AllocUnsafe(size);
-}
-
-
TEST_CASE(BigintSmi) {
{
const Smi& smi = Smi::Handle(Smi::New(5));
@@ -235,6 +229,7 @@ TEST_CASE(BigintDouble) {
TEST_CASE(BigintHexStrings) {
+ Zone* zone = Thread::Current()->zone();
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0x0"));
EXPECT(bigint.FitsIntoSmi());
@@ -255,41 +250,41 @@ TEST_CASE(BigintHexStrings) {
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0x123"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0x123", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0xaBcEf"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0xABCEF", str);
}
{
const char* in = "0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
{
const char* in = "0xFFFFFFF";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
{
const char* in = "0x10000000";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
{
const char* in = "0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
@@ -301,27 +296,27 @@ TEST_CASE(BigintHexStrings) {
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-0x123"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0x123", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-0xaBcEf"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0xABCEF", str);
}
{
const char* in = "-0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
{
const char* in = "-0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(in, str);
}
@@ -334,14 +329,14 @@ TEST_CASE(BigintHexStrings) {
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("0x000000123"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0x123", str);
}
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("0x0000aBcEf"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0xABCEF", str);
}
@@ -349,7 +344,7 @@ TEST_CASE(BigintHexStrings) {
const char* in = "0x00000000000000000000000000000000000000000000123456789";
const char* out = "0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
@@ -357,7 +352,7 @@ TEST_CASE(BigintHexStrings) {
const char* in = "0x00000123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const char* out = "0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
@@ -371,14 +366,14 @@ TEST_CASE(BigintHexStrings) {
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("-0x00000123"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0x123", str);
}
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("-0x000aBcEf"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0xABCEF", str);
}
@@ -386,7 +381,7 @@ TEST_CASE(BigintHexStrings) {
const char* in = "-0x00000000000000000000000000000000000000000000123456789";
const char* out = "-0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
@@ -394,7 +389,7 @@ TEST_CASE(BigintHexStrings) {
const char* in = "-0x0000123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const char* out = "-0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
{
@@ -402,63 +397,64 @@ TEST_CASE(BigintHexStrings) {
const char* out = "0xAB54A98CEB1F0AD2";
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString(test));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
{
const char* test = "-12345678901234567890";
const char* out = "-0xAB54A98CEB1F0AD2";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(test));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ(out, str);
}
}
TEST_CASE(BigintDecStrings) {
+ Zone* zone = Thread::Current()->zone();
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0x0"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("0", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0x123"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("291", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0xaBcEf"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("703727", str);
}
{
const char* in = "0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("4886718345", str);
}
{
const char* in = "0xFFFFFFF";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("268435455", str);
}
{
const char* in = "0x10000000";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("268435456", str);
}
{
const char* in = "0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("7141946863373290020600059860922167424469804758405880798960",
str);
}
@@ -471,27 +467,27 @@ TEST_CASE(BigintDecStrings) {
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-0x123"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("-291", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-0xaBcEf"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("-703727", str);
}
{
const char* in = "-0x123456789";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("-4886718345", str);
}
{
const char* in = "-0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString(in));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("-7141946863373290020600059860922167424469804758405880798960",
str);
}
@@ -505,14 +501,14 @@ TEST_CASE(BigintDecStrings) {
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("0x000000123"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("291", str);
}
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("100000000000000000000000000000000"));
- const char* str = bigint.ToDecCString(&ZoneAllocator);
+ const char* str = bigint.ToDecCString(zone);
EXPECT_STREQ("100000000000000000000000000000000", str);
}
}
@@ -590,6 +586,7 @@ TEST_CASE(BigintCompare) {
TEST_CASE(BigintDecimalStrings) {
+ Zone* zone = Thread::Current()->zone();
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("0"));
EXPECT(bigint.FitsIntoSmi());
@@ -604,20 +601,20 @@ TEST_CASE(BigintDecimalStrings) {
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("703710"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0xABCDE", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("11259375"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0xABCDEF", str);
}
{
const Bigint& bigint =
Bigint::Handle(Bigint::NewFromCString("1311768467463790320"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("0x123456789ABCDEF0", str);
}
@@ -635,20 +632,20 @@ TEST_CASE(BigintDecimalStrings) {
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-703710"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0xABCDE", str);
}
{
const Bigint& bigint = Bigint::Handle(Bigint::NewFromCString("-11259375"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0xABCDEF", str);
}
{
const Bigint& bigint = Bigint::Handle(
Bigint::NewFromCString("-1311768467463790320"));
- const char* str = bigint.ToHexCString(&ZoneAllocator);
+ const char* str = bigint.ToHexCString(zone);
EXPECT_STREQ("-0x123456789ABCDEF0", str);
}
}
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698