remove align16 calls in skhader context sizes. will handle this elsewhere as needed
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1768433003
TBR=
basically reverts previous CL, but keeps the create --> onCreate change
Review URL: https://codereview.chromium.org/1768433003
diff --git a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
index a1784a4..9e839f1 100644
--- a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
+++ b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
@@ -572,7 +572,7 @@
}
size_t SkPerlinNoiseShader2::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(PerlinNoiseShaderContext));
+ return sizeof(PerlinNoiseShaderContext);
}
SkPerlinNoiseShader2::PerlinNoiseShaderContext::PerlinNoiseShaderContext(
diff --git a/src/core/SkBitmapProcShader.cpp b/src/core/SkBitmapProcShader.cpp
index 6c87ebe..895922c 100644
--- a/src/core/SkBitmapProcShader.cpp
+++ b/src/core/SkBitmapProcShader.cpp
@@ -120,7 +120,7 @@
size_t SkBitmapProcShader::ContextSize(const ContextRec& rec) {
// The SkBitmapProcState is stored outside of the context object, with the context holding
// a pointer to it.
- return SkAlign16(sizeof(BitmapProcShaderContext) + sizeof(SkBitmapProcState));
+ return sizeof(BitmapProcShaderContext) + sizeof(SkBitmapProcState);
}
SkShader::Context* SkBitmapProcShader::MakeContext(const SkShader& shader,
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index ce7c4e8..bb5cfb7 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -593,7 +593,7 @@
}
size_t onContextSize(const ContextRec& rec) const override {
- size_t size = SkAlign16(sizeof(Sk3DShaderContext));
+ size_t size = sizeof(Sk3DShaderContext);
if (fProxy) {
size += fProxy->contextSize(rec);
}
diff --git a/src/core/SkColorFilterShader.cpp b/src/core/SkColorFilterShader.cpp
index c856f19..c7cf76b 100644
--- a/src/core/SkColorFilterShader.cpp
+++ b/src/core/SkColorFilterShader.cpp
@@ -63,7 +63,7 @@
}
size_t SkColorFilterShader::onContextSize(const ContextRec& rec) const {
- return SkAlign16(sizeof(FilterShaderContext)) + fShader->contextSize(rec);
+ return sizeof(FilterShaderContext) + fShader->contextSize(rec);
}
SkColorFilterShader::FilterShaderContext::FilterShaderContext(
diff --git a/src/core/SkColorShader.h b/src/core/SkColorShader.h
index 985ab20..7f817b5 100644
--- a/src/core/SkColorShader.h
+++ b/src/core/SkColorShader.h
@@ -57,9 +57,7 @@
SkColorShader(SkReadBuffer&);
void flatten(SkWriteBuffer&) const override;
Context* onCreateContext(const ContextRec&, void* storage) const override;
- size_t onContextSize(const ContextRec&) const override {
- return SkAlign16(sizeof(ColorShaderContext));
- }
+ size_t onContextSize(const ContextRec&) const override { return sizeof(ColorShaderContext); }
bool onAsLuminanceColor(SkColor* lum) const override {
*lum = fColor;
return true;
diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp
index e4ad6e9..b6ba372 100644
--- a/src/core/SkComposeShader.cpp
+++ b/src/core/SkComposeShader.cpp
@@ -31,7 +31,7 @@
}
size_t SkComposeShader::onContextSize(const ContextRec& rec) const {
- return SkAlign16(sizeof(ComposeShaderContext))
+ return sizeof(ComposeShaderContext)
+ fShaderA->contextSize(rec)
+ fShaderB->contextSize(rec);
}
@@ -76,7 +76,7 @@
}
SkShader::Context* SkComposeShader::onCreateContext(const ContextRec& rec, void* storage) const {
- char* aStorage = (char*) storage + SkAlign16(sizeof(ComposeShaderContext));
+ char* aStorage = (char*) storage + sizeof(ComposeShaderContext);
char* bStorage = aStorage + fShaderA->contextSize(rec);
// we preconcat our localMatrix (if any) with the device matrix
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index e9b0677..efb19e2 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -1772,7 +1772,7 @@
SkTriColorShader::TriColorShaderContext::~TriColorShaderContext() {}
size_t SkTriColorShader::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(TriColorShaderContext));
+ return sizeof(TriColorShaderContext);
}
void SkTriColorShader::TriColorShaderContext::shadeSpan(int x, int y, SkPMColor dstC[], int count) {
diff --git a/src/core/SkEmptyShader.h b/src/core/SkEmptyShader.h
index 42b61c5..528ceea 100644
--- a/src/core/SkEmptyShader.h
+++ b/src/core/SkEmptyShader.h
@@ -27,7 +27,7 @@
size_t onContextSize(const ContextRec&) const override {
// Even though createContext returns nullptr we have to return a value of at least
// sizeof(SkShader::Context) to satisfy SkSmallAllocator.
- return SkAlign16(sizeof(SkShader::Context));
+ return sizeof(SkShader::Context);
}
SkShader::Context* onCreateContext(const ContextRec&, void*) const override {
diff --git a/src/core/SkLightingShader.cpp b/src/core/SkLightingShader.cpp
index 2b43e50..02f75f3 100644
--- a/src/core/SkLightingShader.cpp
+++ b/src/core/SkLightingShader.cpp
@@ -651,7 +651,7 @@
}
size_t SkLightingShaderImpl::onContextSize(const ContextRec&) const {
- return SkAlign16(2 * sizeof(SkBitmapProcState) + sizeof(LightingShaderContext));
+ return 2 * sizeof(SkBitmapProcState) + sizeof(LightingShaderContext);
}
SkShader::Context* SkLightingShaderImpl::onCreateContext(const ContextRec& rec,
diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp
index 630b1bf..3919471 100644
--- a/src/core/SkPictureShader.cpp
+++ b/src/core/SkPictureShader.cpp
@@ -242,7 +242,7 @@
}
size_t SkPictureShader::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(PictureShaderContext));
+ return sizeof(PictureShaderContext);
}
SkShader::Context* SkPictureShader::onCreateContext(const ContextRec& rec, void* storage) const {
diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp
index 93d3bc9..75f527b 100644
--- a/src/core/SkShader.cpp
+++ b/src/core/SkShader.cpp
@@ -86,10 +86,6 @@
}
SkShader::Context* SkShader::createContext(const ContextRec& rec, void* storage) const {
- // Currently we require each context to be allocated on 16byte boundary as some of our
- // subclasses need that. Hence we check the ptr here.
-// SkASSERT(SkIsAlign16((intptr_t)storage));
-
if (!this->computeTotalInverse(rec, nullptr)) {
return nullptr;
}
@@ -101,13 +97,7 @@
}
size_t SkShader::contextSize(const ContextRec& rec) const {
- size_t size = this->onContextSize(rec);
-
- // Currently we require each context to be allocated on 16byte boundary as some of our
- // subclasses need that. Hence we check the size here.
-// SkASSERT(SkIsAlign16(size));
-
- return size;
+ return this->onContextSize(rec);
}
size_t SkShader::onContextSize(const ContextRec&) const {
diff --git a/src/core/SkSmallAllocator.h b/src/core/SkSmallAllocator.h
index 63c02ec..22baa89 100644
--- a/src/core/SkSmallAllocator.h
+++ b/src/core/SkSmallAllocator.h
@@ -71,14 +71,13 @@
* allocation if necessary.
* Unlike createT(), this method will not call the constructor of T.
*/
- template<typename T> void* reserveT(size_t storageRequested = sizeof(T)) {
+ template<typename T> void* reserveT(size_t storageRequired = sizeof(T)) {
SkASSERT(fNumObjects < kMaxObjects);
- SkASSERT(storageRequested >= sizeof(T));
+ SkASSERT(storageRequired >= sizeof(T));
if (kMaxObjects == fNumObjects) {
return nullptr;
}
const size_t storageRemaining = sizeof(fStorage) - fStorageUsed;
- const size_t storageRequired = SkAlign16(storageRequested);
Rec* rec = &fRecs[fNumObjects];
if (storageRequired > storageRemaining) {
// Allocate on the heap. Ideally we want to avoid this situation,
@@ -92,7 +91,6 @@
// There is space in fStorage.
rec->fStorageSize = storageRequired;
rec->fHeapStorage = nullptr;
- SkASSERT(SkIsAlign16(fStorageUsed));
rec->fObj = static_cast<void*>(fStorage.fBytes + fStorageUsed);
fStorageUsed += storageRequired;
}
diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp
index a32d8ac..ef52875 100644
--- a/src/effects/SkPerlinNoiseShader.cpp
+++ b/src/effects/SkPerlinNoiseShader.cpp
@@ -435,7 +435,7 @@
}
size_t SkPerlinNoiseShader::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(PerlinNoiseShaderContext));
+ return sizeof(PerlinNoiseShaderContext);
}
SkPerlinNoiseShader::PerlinNoiseShaderContext::PerlinNoiseShaderContext(
diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp
index 40503c9..15d4619 100644
--- a/src/effects/gradients/SkLinearGradient.cpp
+++ b/src/effects/gradients/SkLinearGradient.cpp
@@ -90,8 +90,8 @@
size_t SkLinearGradient::onContextSize(const ContextRec& rec) const {
return use_4f_context(rec, fGradFlags)
- ? SkAlign16(sizeof(LinearGradient4fContext))
- : SkAlign16(sizeof(LinearGradientContext));
+ ? sizeof(LinearGradient4fContext)
+ : sizeof(LinearGradientContext);
}
SkShader::Context* SkLinearGradient::onCreateContext(const ContextRec& rec, void* storage) const {
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp
index a5e73d0..d175f23 100644
--- a/src/effects/gradients/SkRadialGradient.cpp
+++ b/src/effects/gradients/SkRadialGradient.cpp
@@ -41,7 +41,7 @@
}
size_t SkRadialGradient::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(RadialGradientContext));
+ return sizeof(RadialGradientContext);
}
SkShader::Context* SkRadialGradient::onCreateContext(const ContextRec& rec, void* storage) const {
diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp
index 12d55e8..1bdf40e 100644
--- a/src/effects/gradients/SkSweepGradient.cpp
+++ b/src/effects/gradients/SkSweepGradient.cpp
@@ -46,7 +46,7 @@
}
size_t SkSweepGradient::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(SweepGradientContext));
+ return sizeof(SweepGradientContext);
}
SkShader::Context* SkSweepGradient::onCreateContext(const ContextRec& rec, void* storage) const {
diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp
index f4b6b0c..43d6f1f 100644
--- a/src/effects/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp
@@ -212,7 +212,7 @@
}
size_t SkTwoPointConicalGradient::onContextSize(const ContextRec&) const {
- return SkAlign16(sizeof(TwoPointConicalGradientContext));
+ return sizeof(TwoPointConicalGradientContext);
}
SkShader::Context* SkTwoPointConicalGradient::onCreateContext(const ContextRec& rec,
diff --git a/tests/SmallAllocatorTest.cpp b/tests/SmallAllocatorTest.cpp
index 7c9172d..774e0c9 100644
--- a/tests/SmallAllocatorTest.cpp
+++ b/tests/SmallAllocatorTest.cpp
@@ -81,16 +81,3 @@
REPORTER_ASSERT(reporter, container != nullptr);
REPORTER_ASSERT(reporter, container->getDummy() == &d);
}
-
-#define check_alignment(reporter, ptr) \
- REPORTER_ASSERT(reporter, SkIsAlign16((intptr_t)ptr))
-
-DEF_TEST(SmallAllocator_alignment, reporter) {
- const size_t totalBytes = 1 + 2 + 4 + 8;
- SkSmallAllocator<4, totalBytes> alloc;
-
- check_alignment(reporter, alloc.reserveT<uint8_t>());
- check_alignment(reporter, alloc.reserveT<uint16_t>());
- check_alignment(reporter, alloc.reserveT<uint32_t>());
- check_alignment(reporter, alloc.reserveT<uint64_t>());
-}