| Index: src/pdf/SkPDFTypes.cpp
|
| diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp
|
| index faa08372e5e8c591b533526632dd691c033c6d83..e6fe74447df989bedb1b9c6411ca786f83d263aa 100644
|
| --- a/src/pdf/SkPDFTypes.cpp
|
| +++ b/src/pdf/SkPDFTypes.cpp
|
| @@ -1,4 +1,3 @@
|
| -
|
| /*
|
| * Copyright 2011 Google Inc.
|
| *
|
| @@ -28,7 +27,8 @@ SkPDFUnion::~SkPDFUnion() {
|
| return;
|
| case Type::kObjRef:
|
| case Type::kObject:
|
| - SkSafeUnref(fObject);
|
| + SkASSERT(fObject);
|
| + fObject->unref();
|
| return;
|
| default:
|
| return;
|
| @@ -38,7 +38,7 @@ SkPDFUnion::~SkPDFUnion() {
|
| SkPDFUnion& SkPDFUnion::operator=(SkPDFUnion&& other) {
|
| if (this != &other) {
|
| this->~SkPDFUnion();
|
| - new (this) SkPDFUnion(other.move());
|
| + new (this) SkPDFUnion(std::move(other));
|
| }
|
| return *this;
|
| }
|
| @@ -56,14 +56,14 @@ SkPDFUnion SkPDFUnion::copy() const {
|
| switch (fType) {
|
| case Type::kNameSkS:
|
| case Type::kStringSkS:
|
| - new (pun(u.fSkString)) SkString (*pun(fSkString));
|
| - return u.move();
|
| + new (pun(u.fSkString)) SkString(*pun(fSkString));
|
| + return u;
|
| case Type::kObjRef:
|
| case Type::kObject:
|
| SkRef(u.fObject);
|
| - return u.move();
|
| + return u;
|
| default:
|
| - return u.move();
|
| + return u;
|
| }
|
| }
|
| SkPDFUnion& SkPDFUnion::operator=(const SkPDFUnion& other) {
|
| @@ -191,19 +191,19 @@ void SkPDFUnion::addResources(SkPDFObjNumMap* objNumMap,
|
| SkPDFUnion SkPDFUnion::Int(int32_t value) {
|
| SkPDFUnion u(Type::kInt);
|
| u.fIntValue = value;
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::Bool(bool value) {
|
| SkPDFUnion u(Type::kBool);
|
| u.fBoolValue = value;
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::Scalar(SkScalar value) {
|
| SkPDFUnion u(Type::kScalar);
|
| u.fScalarValue = value;
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::Name(const char* value) {
|
| @@ -211,40 +211,40 @@ SkPDFUnion SkPDFUnion::Name(const char* value) {
|
| SkASSERT(value);
|
| SkASSERT(is_valid_name(value));
|
| u.fStaticString = value;
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::String(const char* value) {
|
| SkPDFUnion u(Type::kString);
|
| SkASSERT(value);
|
| u.fStaticString = value;
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::Name(const SkString& s) {
|
| SkPDFUnion u(Type::kNameSkS);
|
| new (pun(u.fSkString)) SkString(s);
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| SkPDFUnion SkPDFUnion::String(const SkString& s) {
|
| SkPDFUnion u(Type::kStringSkS);
|
| new (pun(u.fSkString)) SkString(s);
|
| - return u.move();
|
| + return u;
|
| }
|
|
|
| -SkPDFUnion SkPDFUnion::ObjRef(SkPDFObject* ptr) {
|
| +SkPDFUnion SkPDFUnion::ObjRef(sk_sp<SkPDFObject> objSp) {
|
| SkPDFUnion u(Type::kObjRef);
|
| - SkASSERT(ptr);
|
| - u.fObject = ptr;
|
| - return u.move();
|
| + SkASSERT(objSp.get());
|
| + u.fObject = objSp.release(); // take ownership into union{}
|
| + return u;
|
| }
|
|
|
| -SkPDFUnion SkPDFUnion::Object(SkPDFObject* ptr) {
|
| +SkPDFUnion SkPDFUnion::Object(sk_sp<SkPDFObject> objSp) {
|
| SkPDFUnion u(Type::kObject);
|
| - SkASSERT(ptr);
|
| - u.fObject = ptr;
|
| - return u.move();
|
| + SkASSERT(objSp.get());
|
| + u.fObject = objSp.release(); // take ownership into union{}
|
| + return u;
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -295,7 +295,9 @@ void SkPDFArray::addResources(SkPDFObjNumMap* catalog,
|
| }
|
| }
|
|
|
| -void SkPDFArray::append(SkPDFUnion&& value) { new (fValues.append()) SkPDFUnion(value.move()); }
|
| +void SkPDFArray::append(SkPDFUnion&& value) {
|
| + new (fValues.append()) SkPDFUnion(std::move(value));
|
| +}
|
|
|
| void SkPDFArray::appendInt(int32_t value) {
|
| this->append(SkPDFUnion::Int(value));
|
| @@ -325,12 +327,12 @@ void SkPDFArray::appendString(const char value[]) {
|
| this->append(SkPDFUnion::String(value));
|
| }
|
|
|
| -void SkPDFArray::appendObject(SkPDFObject* value) {
|
| - this->append(SkPDFUnion::Object(value));
|
| +void SkPDFArray::appendObject(sk_sp<SkPDFObject> objSp) {
|
| + this->append(SkPDFUnion::Object(std::move(objSp)));
|
| }
|
|
|
| -void SkPDFArray::appendObjRef(SkPDFObject* value) {
|
| - this->append(SkPDFUnion::ObjRef(value));
|
| +void SkPDFArray::appendObjRef(sk_sp<SkPDFObject> objSp) {
|
| + this->append(SkPDFUnion::ObjRef(std::move(objSp)));
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| @@ -373,24 +375,24 @@ void SkPDFDict::addResources(SkPDFObjNumMap* catalog,
|
| void SkPDFDict::set(SkPDFUnion&& name, SkPDFUnion&& value) {
|
| Record* rec = fRecords.append();
|
| SkASSERT(name.isName());
|
| - new (&rec->fKey) SkPDFUnion(name.move());
|
| - new (&rec->fValue) SkPDFUnion(value.move());
|
| + new (&rec->fKey) SkPDFUnion(std::move(name));
|
| + new (&rec->fValue) SkPDFUnion(std::move(value));
|
| }
|
|
|
| int SkPDFDict::size() const { return fRecords.count(); }
|
|
|
| -void SkPDFDict::insertObjRef(const char key[], SkPDFObject* value) {
|
| - this->set(SkPDFUnion::Name(key), SkPDFUnion::ObjRef(value));
|
| +void SkPDFDict::insertObjRef(const char key[], sk_sp<SkPDFObject> objSp) {
|
| + this->set(SkPDFUnion::Name(key), SkPDFUnion::ObjRef(std::move(objSp)));
|
| }
|
| -void SkPDFDict::insertObjRef(const SkString& key, SkPDFObject* value) {
|
| - this->set(SkPDFUnion::Name(key), SkPDFUnion::ObjRef(value));
|
| +void SkPDFDict::insertObjRef(const SkString& key, sk_sp<SkPDFObject> objSp) {
|
| + this->set(SkPDFUnion::Name(key), SkPDFUnion::ObjRef(std::move(objSp)));
|
| }
|
|
|
| -void SkPDFDict::insertObject(const char key[], SkPDFObject* value) {
|
| - this->set(SkPDFUnion::Name(key), SkPDFUnion::Object(value));
|
| +void SkPDFDict::insertObject(const char key[], sk_sp<SkPDFObject> objSp) {
|
| + this->set(SkPDFUnion::Name(key), SkPDFUnion::Object(std::move(objSp)));
|
| }
|
| -void SkPDFDict::insertObject(const SkString& key, SkPDFObject* value) {
|
| - this->set(SkPDFUnion::Name(key), SkPDFUnion::Object(value));
|
| +void SkPDFDict::insertObject(const SkString& key, sk_sp<SkPDFObject> objSp) {
|
| + this->set(SkPDFUnion::Name(key), SkPDFUnion::Object(std::move(objSp)));
|
| }
|
|
|
| void SkPDFDict::insertBool(const char key[], bool value) {
|
|
|