Remove android specific srcPath from SkPath

Review URL: https://codereview.chromium.org/926693002
This commit is contained in:
djsollen 2015-02-17 08:06:32 -08:00 committed by Commit bot
parent b1629c5d9e
commit 523cda3943
3 changed files with 3 additions and 83 deletions

View File

@ -953,10 +953,8 @@ public:
*/
uint32_t getGenerationID() const;
#ifdef SK_BUILD_FOR_ANDROID
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
static const int kPathRefGenIDBitCnt = 30; // leave room for the fill type (skbug.com/1762)
const SkPath* getSourcePath() const;
void setSourcePath(const SkPath* path);
#else
static const int kPathRefGenIDBitCnt = 32;
#endif
@ -982,9 +980,6 @@ private:
mutable uint8_t fConvexity;
mutable uint8_t fDirection;
mutable SkBool8 fIsVolatile;
#ifdef SK_BUILD_FOR_ANDROID
const SkPath* fSourcePath;
#endif
/** Resets all fields other than fPathRef to their initial 'empty' values.
* Assumes the caller has already emptied fPathRef.

View File

@ -125,11 +125,7 @@ private:
#define INITIAL_LASTMOVETOINDEX_VALUE ~0
SkPath::SkPath()
: fPathRef(SkPathRef::CreateEmpty())
#ifdef SK_BUILD_FOR_ANDROID
, fSourcePath(NULL)
#endif
{
: fPathRef(SkPathRef::CreateEmpty()) {
this->resetFields();
fIsVolatile = false;
}
@ -148,9 +144,6 @@ void SkPath::resetFields() {
SkPath::SkPath(const SkPath& that)
: fPathRef(SkRef(that.fPathRef.get())) {
this->copyFields(that);
#ifdef SK_BUILD_FOR_ANDROID
fSourcePath = that.fSourcePath;
#endif
SkDEBUGCODE(that.validate();)
}
@ -164,9 +157,6 @@ SkPath& SkPath::operator=(const SkPath& that) {
if (this != &that) {
fPathRef.reset(SkRef(that.fPathRef.get()));
this->copyFields(that);
#ifdef SK_BUILD_FOR_ANDROID
fSourcePath = that.fSourcePath;
#endif
}
SkDEBUGCODE(this->validate();)
return *this;
@ -198,9 +188,6 @@ void SkPath::swap(SkPath& that) {
SkTSwap<uint8_t>(fConvexity, that.fConvexity);
SkTSwap<uint8_t>(fDirection, that.fDirection);
SkTSwap<SkBool8>(fIsVolatile, that.fIsVolatile);
#ifdef SK_BUILD_FOR_ANDROID
SkTSwap<const SkPath*>(fSourcePath, that.fSourcePath);
#endif
}
}
@ -308,23 +295,13 @@ bool SkPath::conservativelyContainsRect(const SkRect& rect) const {
uint32_t SkPath::getGenerationID() const {
uint32_t genID = fPathRef->genID();
#ifdef SK_BUILD_FOR_ANDROID
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
SkASSERT((unsigned)fFillType < (1 << (32 - kPathRefGenIDBitCnt)));
genID |= static_cast<uint32_t>(fFillType) << kPathRefGenIDBitCnt;
#endif
return genID;
}
#ifdef SK_BUILD_FOR_ANDROID
const SkPath* SkPath::getSourcePath() const {
return fSourcePath;
}
void SkPath::setSourcePath(const SkPath* path) {
fSourcePath = path;
}
#endif
void SkPath::reset() {
SkDEBUGCODE(this->validate();)

View File

@ -225,57 +225,6 @@ static void test_path_close_issue1474(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, 95 == last.fY);
}
static void test_android_specific_behavior(skiatest::Reporter* reporter) {
#ifdef SK_BUILD_FOR_ANDROID
// Make sure we treat fGenerationID and fSourcePath correctly for each of
// copy, assign, rewind, reset, and swap.
SkPath original, source, anotherSource;
original.setSourcePath(&source);
original.moveTo(0, 0);
original.lineTo(1, 1);
REPORTER_ASSERT(reporter, original.getSourcePath() == &source);
uint32_t copyID, assignID;
// Test copy constructor. Copy generation ID, copy source path.
SkPath copy(original);
REPORTER_ASSERT(reporter, copy.getGenerationID() == original.getGenerationID());
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
// Test assigment operator. Change generation ID, copy source path.
SkPath assign;
assignID = assign.getGenerationID();
assign = original;
REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
// Test rewind. Change generation ID, don't touch source path.
copyID = copy.getGenerationID();
copy.rewind();
REPORTER_ASSERT(reporter, copy.getGenerationID() != copyID);
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
// Test reset. Change generation ID, don't touch source path.
assignID = assign.getGenerationID();
assign.reset();
REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
// Test swap. Swap the generation IDs, swap source paths.
copy.reset();
copy.moveTo(2, 2);
copy.setSourcePath(&anotherSource);
copyID = copy.getGenerationID();
assign.moveTo(3, 3);
assignID = assign.getGenerationID();
copy.swap(assign);
REPORTER_ASSERT(reporter, copy.getGenerationID() != copyID);
REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
REPORTER_ASSERT(reporter, assign.getSourcePath() == &anotherSource);
#endif
}
static void test_gen_id(skiatest::Reporter* reporter) {
SkPath a, b;
REPORTER_ASSERT(reporter, a.getGenerationID() == b.getGenerationID());
@ -3748,7 +3697,6 @@ DEF_TEST(Paths, reporter) {
test_crbug_170666();
test_bad_cubic_crbug229478();
test_bad_cubic_crbug234190();
test_android_specific_behavior(reporter);
test_gen_id(reporter);
test_path_close_issue1474(reporter);
test_path_to_region(reporter);