Fix bug in SkWriter32.
If you give SkWriter32 external storage but that external storage is too small
for the first reservation you make, you'll hit an assert in debug mode.
I think the answer is to simply remove the SkASSERT. Added a test.
BUG=
R=reed@google.com
Review URL: https://codereview.chromium.org/23646007
git-svn-id: http://skia.googlecode.com/svn/trunk@11062 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 194164d..fd232fc 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -21,6 +21,15 @@
REPORTER_ASSERT(reporter, !memcmp(storage.get(), expected, size));
}
+
+static void test_reserve(skiatest::Reporter* reporter) {
+ // There used to be a bug where we'd assert your first reservation had to
+ // fit in external storage if you used it. This would crash in debug mode.
+ uint8_t storage[4];
+ SkWriter32 writer(0, storage, sizeof(storage));
+ writer.reserve(40);
+}
+
static void test_string_null(skiatest::Reporter* reporter) {
uint8_t storage[8];
SkWriter32 writer(0, storage, sizeof(storage));
@@ -238,6 +247,7 @@
testWritePad(reporter, &writer);
}
+ test_reserve(reporter);
test_string_null(reporter);
test_ptr(reporter);
test_rewind(reporter);