提交 584d3928 编写于 作者: A Adam Barth 提交者: GitHub

Remove dependency from tonic to wtf (#2740)

This patch paves the way to untangling a large amount of code from the engine.
上级 c6f77f17
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "sky/engine/tonic/dart_args.h" #include "sky/engine/tonic/dart_args.h"
#include "sky/engine/tonic/dart_binding_macros.h" #include "sky/engine/tonic/dart_binding_macros.h"
#include "sky/engine/tonic/dart_converter.h" #include "sky/engine/tonic/dart_converter.h"
#include "sky/engine/wtf/MakeUnique.h"
namespace blink { namespace blink {
...@@ -49,7 +48,7 @@ DartJniJvmData* g_jvm_data = nullptr; ...@@ -49,7 +48,7 @@ DartJniJvmData* g_jvm_data = nullptr;
void CreateIsolateData() { void CreateIsolateData() {
static_cast<FlutterDartState*>(DartState::Current())->set_jni_data( static_cast<FlutterDartState*>(DartState::Current())->set_jni_data(
WTF::MakeUnique<DartJniIsolateData>()); std::unique_ptr<DartJniIsolateData>(new DartJniIsolateData()));
} }
DartJniIsolateData* IsolateData() { DartJniIsolateData* IsolateData() {
......
...@@ -9,10 +9,9 @@ ...@@ -9,10 +9,9 @@
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/android/jni_utils.h" #include "base/android/jni_utils.h"
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_library_natives.h" #include "sky/engine/tonic/dart_library_natives.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
#define ENTER_JNI() \ #define ENTER_JNI() \
JNIEnv* env = base::android::AttachCurrentThread(); \ JNIEnv* env = base::android::AttachCurrentThread(); \
......
...@@ -20,7 +20,7 @@ int64_t JniApi::FromReflectedField(const JniObject* field) { ...@@ -20,7 +20,7 @@ int64_t JniApi::FromReflectedField(const JniObject* field) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -36,16 +36,16 @@ int64_t JniApi::FromReflectedMethod(const JniObject* method) { ...@@ -36,16 +36,16 @@ int64_t JniApi::FromReflectedMethod(const JniObject* method) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
PassRefPtr<JniObject> JniApi::GetApplicationContext() { scoped_refptr<JniObject> JniApi::GetApplicationContext() {
ENTER_JNI(); ENTER_JNI();
return JniObject::Create(env, base::android::GetApplicationContext()); return JniObject::Create(env, base::android::GetApplicationContext());
} }
PassRefPtr<JniObject> JniApi::GetClassLoader() { scoped_refptr<JniObject> JniApi::GetClassLoader() {
ENTER_JNI(); ENTER_JNI();
return JniObject::Create(env, DartJni::class_loader()); return JniObject::Create(env, DartJni::class_loader());
} }
......
...@@ -15,8 +15,8 @@ class JniApi { ...@@ -15,8 +15,8 @@ class JniApi {
public: public:
static int64_t FromReflectedField(const JniObject* field); static int64_t FromReflectedField(const JniObject* field);
static int64_t FromReflectedMethod(const JniObject* method); static int64_t FromReflectedMethod(const JniObject* method);
static PassRefPtr<JniObject> GetApplicationContext(); static scoped_refptr<JniObject> GetApplicationContext();
static PassRefPtr<JniObject> GetClassLoader(); static scoped_refptr<JniObject> GetClassLoader();
}; };
} // namespace blink } // namespace blink
......
...@@ -28,7 +28,7 @@ jsize JniArray::GetLength() { ...@@ -28,7 +28,7 @@ jsize JniArray::GetLength() {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -45,7 +45,7 @@ JniObjectArray::JniObjectArray(JNIEnv* env, jobjectArray array) ...@@ -45,7 +45,7 @@ JniObjectArray::JniObjectArray(JNIEnv* env, jobjectArray array)
JniObjectArray::~JniObjectArray() { JniObjectArray::~JniObjectArray() {
} }
PassRefPtr<JniObjectArray> JniObjectArray::Create(const JniClass* clazz, scoped_refptr<JniObjectArray> JniObjectArray::Create(const JniClass* clazz,
jsize length) { jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
...@@ -55,15 +55,15 @@ PassRefPtr<JniObjectArray> JniObjectArray::Create(const JniClass* clazz, ...@@ -55,15 +55,15 @@ PassRefPtr<JniObjectArray> JniObjectArray::Create(const JniClass* clazz,
nullptr); nullptr);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniObjectArray(env, array)); return new JniObjectArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
PassRefPtr<JniObject> JniObjectArray::GetArrayElement(jsize index) { scoped_refptr<JniObject> JniObjectArray::GetArrayElement(jsize index) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -76,7 +76,7 @@ PassRefPtr<JniObject> JniObjectArray::GetArrayElement(jsize index) { ...@@ -76,7 +76,7 @@ PassRefPtr<JniObject> JniObjectArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -93,7 +93,7 @@ void JniObjectArray::SetArrayElement(jsize index, const JniObject* value) { ...@@ -93,7 +93,7 @@ void JniObjectArray::SetArrayElement(jsize index, const JniObject* value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -105,7 +105,7 @@ JniBooleanArray::JniBooleanArray(JNIEnv* env, jbooleanArray array) ...@@ -105,7 +105,7 @@ JniBooleanArray::JniBooleanArray(JNIEnv* env, jbooleanArray array)
JniBooleanArray::~JniBooleanArray() { JniBooleanArray::~JniBooleanArray() {
} }
PassRefPtr<JniBooleanArray> JniBooleanArray::Create(jsize length) { scoped_refptr<JniBooleanArray> JniBooleanArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -113,11 +113,11 @@ PassRefPtr<JniBooleanArray> JniBooleanArray::Create(jsize length) { ...@@ -113,11 +113,11 @@ PassRefPtr<JniBooleanArray> JniBooleanArray::Create(jsize length) {
jbooleanArray array = env->NewBooleanArray(length); jbooleanArray array = env->NewBooleanArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniBooleanArray(env, array)); return new JniBooleanArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -134,7 +134,7 @@ bool JniBooleanArray::GetArrayElement(jsize index) { ...@@ -134,7 +134,7 @@ bool JniBooleanArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -152,7 +152,7 @@ void JniBooleanArray::SetArrayElement(jsize index, bool value) { ...@@ -152,7 +152,7 @@ void JniBooleanArray::SetArrayElement(jsize index, bool value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -164,7 +164,7 @@ JniByteArray::JniByteArray(JNIEnv* env, jbyteArray array) ...@@ -164,7 +164,7 @@ JniByteArray::JniByteArray(JNIEnv* env, jbyteArray array)
JniByteArray::~JniByteArray() { JniByteArray::~JniByteArray() {
} }
PassRefPtr<JniByteArray> JniByteArray::Create(jsize length) { scoped_refptr<JniByteArray> JniByteArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -172,11 +172,11 @@ PassRefPtr<JniByteArray> JniByteArray::Create(jsize length) { ...@@ -172,11 +172,11 @@ PassRefPtr<JniByteArray> JniByteArray::Create(jsize length) {
jbyteArray array = env->NewByteArray(length); jbyteArray array = env->NewByteArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniByteArray(env, array)); return new JniByteArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -193,7 +193,7 @@ int64_t JniByteArray::GetArrayElement(jsize index) { ...@@ -193,7 +193,7 @@ int64_t JniByteArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -211,7 +211,7 @@ void JniByteArray::SetArrayElement(jsize index, int64_t value) { ...@@ -211,7 +211,7 @@ void JniByteArray::SetArrayElement(jsize index, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -223,7 +223,7 @@ JniCharArray::JniCharArray(JNIEnv* env, jcharArray array) ...@@ -223,7 +223,7 @@ JniCharArray::JniCharArray(JNIEnv* env, jcharArray array)
JniCharArray::~JniCharArray() { JniCharArray::~JniCharArray() {
} }
PassRefPtr<JniCharArray> JniCharArray::Create(jsize length) { scoped_refptr<JniCharArray> JniCharArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -231,11 +231,11 @@ PassRefPtr<JniCharArray> JniCharArray::Create(jsize length) { ...@@ -231,11 +231,11 @@ PassRefPtr<JniCharArray> JniCharArray::Create(jsize length) {
jcharArray array = env->NewCharArray(length); jcharArray array = env->NewCharArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniCharArray(env, array)); return new JniCharArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -252,7 +252,7 @@ int64_t JniCharArray::GetArrayElement(jsize index) { ...@@ -252,7 +252,7 @@ int64_t JniCharArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -270,7 +270,7 @@ void JniCharArray::SetArrayElement(jsize index, int64_t value) { ...@@ -270,7 +270,7 @@ void JniCharArray::SetArrayElement(jsize index, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -282,7 +282,7 @@ JniShortArray::JniShortArray(JNIEnv* env, jshortArray array) ...@@ -282,7 +282,7 @@ JniShortArray::JniShortArray(JNIEnv* env, jshortArray array)
JniShortArray::~JniShortArray() { JniShortArray::~JniShortArray() {
} }
PassRefPtr<JniShortArray> JniShortArray::Create(jsize length) { scoped_refptr<JniShortArray> JniShortArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -290,11 +290,11 @@ PassRefPtr<JniShortArray> JniShortArray::Create(jsize length) { ...@@ -290,11 +290,11 @@ PassRefPtr<JniShortArray> JniShortArray::Create(jsize length) {
jshortArray array = env->NewShortArray(length); jshortArray array = env->NewShortArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniShortArray(env, array)); return new JniShortArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -311,7 +311,7 @@ int64_t JniShortArray::GetArrayElement(jsize index) { ...@@ -311,7 +311,7 @@ int64_t JniShortArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -329,7 +329,7 @@ void JniShortArray::SetArrayElement(jsize index, int64_t value) { ...@@ -329,7 +329,7 @@ void JniShortArray::SetArrayElement(jsize index, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -341,7 +341,7 @@ JniIntArray::JniIntArray(JNIEnv* env, jintArray array) ...@@ -341,7 +341,7 @@ JniIntArray::JniIntArray(JNIEnv* env, jintArray array)
JniIntArray::~JniIntArray() { JniIntArray::~JniIntArray() {
} }
PassRefPtr<JniIntArray> JniIntArray::Create(jsize length) { scoped_refptr<JniIntArray> JniIntArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -349,11 +349,11 @@ PassRefPtr<JniIntArray> JniIntArray::Create(jsize length) { ...@@ -349,11 +349,11 @@ PassRefPtr<JniIntArray> JniIntArray::Create(jsize length) {
jintArray array = env->NewIntArray(length); jintArray array = env->NewIntArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniIntArray(env, array)); return new JniIntArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -370,7 +370,7 @@ int64_t JniIntArray::GetArrayElement(jsize index) { ...@@ -370,7 +370,7 @@ int64_t JniIntArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -388,7 +388,7 @@ void JniIntArray::SetArrayElement(jsize index, int64_t value) { ...@@ -388,7 +388,7 @@ void JniIntArray::SetArrayElement(jsize index, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -400,7 +400,7 @@ JniLongArray::JniLongArray(JNIEnv* env, jlongArray array) ...@@ -400,7 +400,7 @@ JniLongArray::JniLongArray(JNIEnv* env, jlongArray array)
JniLongArray::~JniLongArray() { JniLongArray::~JniLongArray() {
} }
PassRefPtr<JniLongArray> JniLongArray::Create(jsize length) { scoped_refptr<JniLongArray> JniLongArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -408,11 +408,11 @@ PassRefPtr<JniLongArray> JniLongArray::Create(jsize length) { ...@@ -408,11 +408,11 @@ PassRefPtr<JniLongArray> JniLongArray::Create(jsize length) {
jlongArray array = env->NewLongArray(length); jlongArray array = env->NewLongArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniLongArray(env, array)); return new JniLongArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -429,7 +429,7 @@ int64_t JniLongArray::GetArrayElement(jsize index) { ...@@ -429,7 +429,7 @@ int64_t JniLongArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -447,7 +447,7 @@ void JniLongArray::SetArrayElement(jsize index, int64_t value) { ...@@ -447,7 +447,7 @@ void JniLongArray::SetArrayElement(jsize index, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -459,7 +459,7 @@ JniFloatArray::JniFloatArray(JNIEnv* env, jfloatArray array) ...@@ -459,7 +459,7 @@ JniFloatArray::JniFloatArray(JNIEnv* env, jfloatArray array)
JniFloatArray::~JniFloatArray() { JniFloatArray::~JniFloatArray() {
} }
PassRefPtr<JniFloatArray> JniFloatArray::Create(jsize length) { scoped_refptr<JniFloatArray> JniFloatArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -467,11 +467,11 @@ PassRefPtr<JniFloatArray> JniFloatArray::Create(jsize length) { ...@@ -467,11 +467,11 @@ PassRefPtr<JniFloatArray> JniFloatArray::Create(jsize length) {
jfloatArray array = env->NewFloatArray(length); jfloatArray array = env->NewFloatArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniFloatArray(env, array)); return new JniFloatArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -488,7 +488,7 @@ double JniFloatArray::GetArrayElement(jsize index) { ...@@ -488,7 +488,7 @@ double JniFloatArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -506,7 +506,7 @@ void JniFloatArray::SetArrayElement(jsize index, double value) { ...@@ -506,7 +506,7 @@ void JniFloatArray::SetArrayElement(jsize index, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -518,7 +518,7 @@ JniDoubleArray::JniDoubleArray(JNIEnv* env, jdoubleArray array) ...@@ -518,7 +518,7 @@ JniDoubleArray::JniDoubleArray(JNIEnv* env, jdoubleArray array)
JniDoubleArray::~JniDoubleArray() { JniDoubleArray::~JniDoubleArray() {
} }
PassRefPtr<JniDoubleArray> JniDoubleArray::Create(jsize length) { scoped_refptr<JniDoubleArray> JniDoubleArray::Create(jsize length) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -526,11 +526,11 @@ PassRefPtr<JniDoubleArray> JniDoubleArray::Create(jsize length) { ...@@ -526,11 +526,11 @@ PassRefPtr<JniDoubleArray> JniDoubleArray::Create(jsize length) {
jdoubleArray array = env->NewDoubleArray(length); jdoubleArray array = env->NewDoubleArray(length);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniDoubleArray(env, array)); return new JniDoubleArray(env, array);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -547,7 +547,7 @@ double JniDoubleArray::GetArrayElement(jsize index) { ...@@ -547,7 +547,7 @@ double JniDoubleArray::GetArrayElement(jsize index) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -564,7 +564,7 @@ void JniDoubleArray::SetArrayElement(jsize index, double value) { ...@@ -564,7 +564,7 @@ void JniDoubleArray::SetArrayElement(jsize index, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
......
...@@ -33,8 +33,8 @@ class JniObjectArray : public JniArray { ...@@ -33,8 +33,8 @@ class JniObjectArray : public JniArray {
public: public:
~JniObjectArray() override; ~JniObjectArray() override;
static PassRefPtr<JniObjectArray> Create(const JniClass* clazz, jsize length); static scoped_refptr<JniObjectArray> Create(const JniClass* clazz, jsize length);
PassRefPtr<JniObject> GetArrayElement(jsize index); scoped_refptr<JniObject> GetArrayElement(jsize index);
void SetArrayElement(jsize index, const JniObject* value); void SetArrayElement(jsize index, const JniObject* value);
private: private:
...@@ -48,7 +48,7 @@ class JniBooleanArray : public JniArray { ...@@ -48,7 +48,7 @@ class JniBooleanArray : public JniArray {
public: public:
~JniBooleanArray() override; ~JniBooleanArray() override;
static PassRefPtr<JniBooleanArray> Create(jsize length); static scoped_refptr<JniBooleanArray> Create(jsize length);
bool GetArrayElement(jsize index); bool GetArrayElement(jsize index);
void SetArrayElement(jsize index, bool value); void SetArrayElement(jsize index, bool value);
...@@ -63,7 +63,7 @@ class JniByteArray : public JniArray { ...@@ -63,7 +63,7 @@ class JniByteArray : public JniArray {
public: public:
~JniByteArray() override; ~JniByteArray() override;
static PassRefPtr<JniByteArray> Create(jsize length); static scoped_refptr<JniByteArray> Create(jsize length);
int64_t GetArrayElement(jsize index); int64_t GetArrayElement(jsize index);
void SetArrayElement(jsize index, int64_t value); void SetArrayElement(jsize index, int64_t value);
...@@ -78,7 +78,7 @@ class JniCharArray : public JniArray { ...@@ -78,7 +78,7 @@ class JniCharArray : public JniArray {
public: public:
~JniCharArray() override; ~JniCharArray() override;
static PassRefPtr<JniCharArray> Create(jsize length); static scoped_refptr<JniCharArray> Create(jsize length);
int64_t GetArrayElement(jsize index); int64_t GetArrayElement(jsize index);
void SetArrayElement(jsize index, int64_t value); void SetArrayElement(jsize index, int64_t value);
...@@ -93,7 +93,7 @@ class JniShortArray : public JniArray { ...@@ -93,7 +93,7 @@ class JniShortArray : public JniArray {
public: public:
~JniShortArray() override; ~JniShortArray() override;
static PassRefPtr<JniShortArray> Create(jsize length); static scoped_refptr<JniShortArray> Create(jsize length);
int64_t GetArrayElement(jsize index); int64_t GetArrayElement(jsize index);
void SetArrayElement(jsize index, int64_t value); void SetArrayElement(jsize index, int64_t value);
...@@ -108,7 +108,7 @@ class JniIntArray : public JniArray { ...@@ -108,7 +108,7 @@ class JniIntArray : public JniArray {
public: public:
~JniIntArray() override; ~JniIntArray() override;
static PassRefPtr<JniIntArray> Create(jsize length); static scoped_refptr<JniIntArray> Create(jsize length);
int64_t GetArrayElement(jsize index); int64_t GetArrayElement(jsize index);
void SetArrayElement(jsize index, int64_t value); void SetArrayElement(jsize index, int64_t value);
...@@ -123,7 +123,7 @@ class JniLongArray : public JniArray { ...@@ -123,7 +123,7 @@ class JniLongArray : public JniArray {
public: public:
~JniLongArray() override; ~JniLongArray() override;
static PassRefPtr<JniLongArray> Create(jsize length); static scoped_refptr<JniLongArray> Create(jsize length);
int64_t GetArrayElement(jsize index); int64_t GetArrayElement(jsize index);
void SetArrayElement(jsize index, int64_t value); void SetArrayElement(jsize index, int64_t value);
...@@ -138,7 +138,7 @@ class JniFloatArray : public JniArray { ...@@ -138,7 +138,7 @@ class JniFloatArray : public JniArray {
public: public:
~JniFloatArray() override; ~JniFloatArray() override;
static PassRefPtr<JniFloatArray> Create(jsize length); static scoped_refptr<JniFloatArray> Create(jsize length);
double GetArrayElement(jsize index); double GetArrayElement(jsize index);
void SetArrayElement(jsize index, double value); void SetArrayElement(jsize index, double value);
...@@ -153,7 +153,7 @@ class JniDoubleArray : public JniArray { ...@@ -153,7 +153,7 @@ class JniDoubleArray : public JniArray {
public: public:
~JniDoubleArray() override; ~JniDoubleArray() override;
static PassRefPtr<JniDoubleArray> Create(jsize length); static scoped_refptr<JniDoubleArray> Create(jsize length);
double GetArrayElement(jsize index); double GetArrayElement(jsize index);
void SetArrayElement(jsize index, double value); void SetArrayElement(jsize index, double value);
......
...@@ -18,7 +18,7 @@ JniClass::JniClass(JNIEnv* env, jclass clazz) ...@@ -18,7 +18,7 @@ JniClass::JniClass(JNIEnv* env, jclass clazz)
JniClass::~JniClass() { JniClass::~JniClass() {
} }
PassRefPtr<JniClass> JniClass::FromName(const char* name) { scoped_refptr<JniClass> JniClass::FromName(const char* name) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -28,15 +28,15 @@ PassRefPtr<JniClass> JniClass::FromName(const char* name) { ...@@ -28,15 +28,15 @@ PassRefPtr<JniClass> JniClass::FromName(const char* name) {
ScopedJavaLocalRef<jclass> clazz = DartJni::GetClass(env, name); ScopedJavaLocalRef<jclass> clazz = DartJni::GetClass(env, name);
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniClass(env, clazz.obj())); return new JniClass(env, clazz.obj());
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
PassRefPtr<JniClass> JniClass::FromClassObject(const JniObject* clazz) { scoped_refptr<JniClass> JniClass::FromClassObject(const JniObject* clazz) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -49,11 +49,11 @@ PassRefPtr<JniClass> JniClass::FromClassObject(const JniObject* clazz) { ...@@ -49,11 +49,11 @@ PassRefPtr<JniClass> JniClass::FromClassObject(const JniObject* clazz) {
goto fail; goto fail;
} }
return adoptRef(new JniClass(env, static_cast<jclass>(class_object))); return new JniClass(env, static_cast<jclass>(class_object));
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -69,7 +69,7 @@ intptr_t JniClass::GetFieldId(const char* name, const char* sig) { ...@@ -69,7 +69,7 @@ intptr_t JniClass::GetFieldId(const char* name, const char* sig) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -85,7 +85,7 @@ intptr_t JniClass::GetStaticFieldId(const char* name, const char* sig) { ...@@ -85,7 +85,7 @@ intptr_t JniClass::GetStaticFieldId(const char* name, const char* sig) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -101,7 +101,7 @@ intptr_t JniClass::GetMethodId(const char* name, const char* sig) { ...@@ -101,7 +101,7 @@ intptr_t JniClass::GetMethodId(const char* name, const char* sig) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -117,11 +117,11 @@ intptr_t JniClass::GetStaticMethodId(const char* name, const char* sig) { ...@@ -117,11 +117,11 @@ intptr_t JniClass::GetStaticMethodId(const char* name, const char* sig) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
PassRefPtr<JniObject> JniClass::NewObject( scoped_refptr<JniObject> JniClass::NewObject(
jmethodID methodId, const std::vector<Dart_Handle>& args) { jmethodID methodId, const std::vector<Dart_Handle>& args) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
...@@ -138,7 +138,7 @@ PassRefPtr<JniObject> JniClass::NewObject( ...@@ -138,7 +138,7 @@ PassRefPtr<JniObject> JniClass::NewObject(
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -154,11 +154,11 @@ bool JniClass::IsAssignable(const JniClass* clazz) { ...@@ -154,11 +154,11 @@ bool JniClass::IsAssignable(const JniClass* clazz) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
PassRefPtr<JniObject> JniClass::GetStaticObjectField(jfieldID fieldId) { scoped_refptr<JniObject> JniClass::GetStaticObjectField(jfieldID fieldId) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -170,7 +170,7 @@ PassRefPtr<JniObject> JniClass::GetStaticObjectField(jfieldID fieldId) { ...@@ -170,7 +170,7 @@ PassRefPtr<JniObject> JniClass::GetStaticObjectField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -186,7 +186,7 @@ bool JniClass::GetStaticBooleanField(jfieldID fieldId) { ...@@ -186,7 +186,7 @@ bool JniClass::GetStaticBooleanField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -202,7 +202,7 @@ int64_t JniClass::GetStaticByteField(jfieldID fieldId) { ...@@ -202,7 +202,7 @@ int64_t JniClass::GetStaticByteField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -218,7 +218,7 @@ int64_t JniClass::GetStaticCharField(jfieldID fieldId) { ...@@ -218,7 +218,7 @@ int64_t JniClass::GetStaticCharField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -234,7 +234,7 @@ int64_t JniClass::GetStaticShortField(jfieldID fieldId) { ...@@ -234,7 +234,7 @@ int64_t JniClass::GetStaticShortField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -250,7 +250,7 @@ int64_t JniClass::GetStaticIntField(jfieldID fieldId) { ...@@ -250,7 +250,7 @@ int64_t JniClass::GetStaticIntField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -266,7 +266,7 @@ int64_t JniClass::GetStaticLongField(jfieldID fieldId) { ...@@ -266,7 +266,7 @@ int64_t JniClass::GetStaticLongField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -282,7 +282,7 @@ double JniClass::GetStaticFloatField(jfieldID fieldId) { ...@@ -282,7 +282,7 @@ double JniClass::GetStaticFloatField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -298,7 +298,7 @@ double JniClass::GetStaticDoubleField(jfieldID fieldId) { ...@@ -298,7 +298,7 @@ double JniClass::GetStaticDoubleField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -315,7 +315,7 @@ void JniClass::SetStaticObjectField(jfieldID fieldId, const JniObject* value) { ...@@ -315,7 +315,7 @@ void JniClass::SetStaticObjectField(jfieldID fieldId, const JniObject* value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -332,7 +332,7 @@ void JniClass::SetStaticBooleanField(jfieldID fieldId, bool value) { ...@@ -332,7 +332,7 @@ void JniClass::SetStaticBooleanField(jfieldID fieldId, bool value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -348,7 +348,7 @@ void JniClass::SetStaticByteField(jfieldID fieldId, int64_t value) { ...@@ -348,7 +348,7 @@ void JniClass::SetStaticByteField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -364,7 +364,7 @@ void JniClass::SetStaticCharField(jfieldID fieldId, int64_t value) { ...@@ -364,7 +364,7 @@ void JniClass::SetStaticCharField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -380,7 +380,7 @@ void JniClass::SetStaticShortField(jfieldID fieldId, int64_t value) { ...@@ -380,7 +380,7 @@ void JniClass::SetStaticShortField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -396,7 +396,7 @@ void JniClass::SetStaticIntField(jfieldID fieldId, int64_t value) { ...@@ -396,7 +396,7 @@ void JniClass::SetStaticIntField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -412,7 +412,7 @@ void JniClass::SetStaticLongField(jfieldID fieldId, int64_t value) { ...@@ -412,7 +412,7 @@ void JniClass::SetStaticLongField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -428,7 +428,7 @@ void JniClass::SetStaticFloatField(jfieldID fieldId, double value) { ...@@ -428,7 +428,7 @@ void JniClass::SetStaticFloatField(jfieldID fieldId, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -444,11 +444,11 @@ void JniClass::SetStaticDoubleField(jfieldID fieldId, double value) { ...@@ -444,11 +444,11 @@ void JniClass::SetStaticDoubleField(jfieldID fieldId, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
PassRefPtr<JniObject> JniClass::CallStaticObjectMethod( scoped_refptr<JniObject> JniClass::CallStaticObjectMethod(
jmethodID methodId, const std::vector<Dart_Handle>& args) { jmethodID methodId, const std::vector<Dart_Handle>& args) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
...@@ -466,7 +466,7 @@ PassRefPtr<JniObject> JniClass::CallStaticObjectMethod( ...@@ -466,7 +466,7 @@ PassRefPtr<JniObject> JniClass::CallStaticObjectMethod(
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -488,7 +488,7 @@ bool JniClass::CallStaticBooleanMethod(jmethodID methodId, ...@@ -488,7 +488,7 @@ bool JniClass::CallStaticBooleanMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -510,7 +510,7 @@ int64_t JniClass::CallStaticByteMethod(jmethodID methodId, ...@@ -510,7 +510,7 @@ int64_t JniClass::CallStaticByteMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -532,7 +532,7 @@ int64_t JniClass::CallStaticCharMethod(jmethodID methodId, ...@@ -532,7 +532,7 @@ int64_t JniClass::CallStaticCharMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -554,7 +554,7 @@ int64_t JniClass::CallStaticShortMethod(jmethodID methodId, ...@@ -554,7 +554,7 @@ int64_t JniClass::CallStaticShortMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -576,7 +576,7 @@ int64_t JniClass::CallStaticIntMethod(jmethodID methodId, ...@@ -576,7 +576,7 @@ int64_t JniClass::CallStaticIntMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -598,7 +598,7 @@ int64_t JniClass::CallStaticLongMethod(jmethodID methodId, ...@@ -598,7 +598,7 @@ int64_t JniClass::CallStaticLongMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -620,7 +620,7 @@ double JniClass::CallStaticFloatMethod(jmethodID methodId, ...@@ -620,7 +620,7 @@ double JniClass::CallStaticFloatMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -642,7 +642,7 @@ double JniClass::CallStaticDoubleMethod(jmethodID methodId, ...@@ -642,7 +642,7 @@ double JniClass::CallStaticDoubleMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -663,7 +663,7 @@ void JniClass::CallStaticVoidMethod(jmethodID methodId, ...@@ -663,7 +663,7 @@ void JniClass::CallStaticVoidMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
......
...@@ -8,10 +8,9 @@ ...@@ -8,10 +8,9 @@
#include <jni.h> #include <jni.h>
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/memory/ref_counted.h"
#include "sky/engine/bindings/jni/jni_object.h" #include "sky/engine/bindings/jni/jni_object.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace blink { namespace blink {
...@@ -23,8 +22,8 @@ class JniClass : public JniObject { ...@@ -23,8 +22,8 @@ class JniClass : public JniObject {
public: public:
~JniClass() override; ~JniClass() override;
static PassRefPtr<JniClass> FromName(const char* className); static scoped_refptr<JniClass> FromName(const char* className);
static PassRefPtr<JniClass> FromClassObject(const JniObject* clazz); static scoped_refptr<JniClass> FromClassObject(const JniObject* clazz);
jclass java_class() const { return static_cast<jclass>(object_.obj()); } jclass java_class() const { return static_cast<jclass>(object_.obj()); }
...@@ -33,12 +32,12 @@ class JniClass : public JniObject { ...@@ -33,12 +32,12 @@ class JniClass : public JniObject {
intptr_t GetMethodId(const char* name, const char* sig); intptr_t GetMethodId(const char* name, const char* sig);
intptr_t GetStaticMethodId(const char* name, const char* sig); intptr_t GetStaticMethodId(const char* name, const char* sig);
PassRefPtr<JniObject> NewObject(jmethodID methodId, scoped_refptr<JniObject> NewObject(jmethodID methodId,
const std::vector<Dart_Handle>& args); const std::vector<Dart_Handle>& args);
bool IsAssignable(const JniClass* clazz); bool IsAssignable(const JniClass* clazz);
PassRefPtr<JniObject> GetStaticObjectField(jfieldID fieldId); scoped_refptr<JniObject> GetStaticObjectField(jfieldID fieldId);
bool GetStaticBooleanField(jfieldID fieldId); bool GetStaticBooleanField(jfieldID fieldId);
int64_t GetStaticByteField(jfieldID fieldId); int64_t GetStaticByteField(jfieldID fieldId);
int64_t GetStaticCharField(jfieldID fieldId); int64_t GetStaticCharField(jfieldID fieldId);
...@@ -58,7 +57,7 @@ class JniClass : public JniObject { ...@@ -58,7 +57,7 @@ class JniClass : public JniObject {
void SetStaticFloatField(jfieldID fieldId, double value); void SetStaticFloatField(jfieldID fieldId, double value);
void SetStaticDoubleField(jfieldID fieldId, double value); void SetStaticDoubleField(jfieldID fieldId, double value);
PassRefPtr<JniObject> CallStaticObjectMethod( scoped_refptr<JniObject> CallStaticObjectMethod(
jmethodID methodId, const std::vector<Dart_Handle>& args); jmethodID methodId, const std::vector<Dart_Handle>& args);
bool CallStaticBooleanMethod(jmethodID methodId, bool CallStaticBooleanMethod(jmethodID methodId,
const std::vector<Dart_Handle>& args); const std::vector<Dart_Handle>& args);
......
...@@ -21,7 +21,7 @@ JniObject::JniObject(JNIEnv* env, jobject object) ...@@ -21,7 +21,7 @@ JniObject::JniObject(JNIEnv* env, jobject object)
JniObject::~JniObject() { JniObject::~JniObject() {
} }
PassRefPtr<JniObject> JniObject::Create(JNIEnv* env, jobject object) { scoped_refptr<JniObject> JniObject::Create(JNIEnv* env, jobject object) {
if (object == nullptr) if (object == nullptr)
return nullptr; return nullptr;
...@@ -55,10 +55,10 @@ PassRefPtr<JniObject> JniObject::Create(JNIEnv* env, jobject object) { ...@@ -55,10 +55,10 @@ PassRefPtr<JniObject> JniObject::Create(JNIEnv* env, jobject object) {
result = new JniObject(env, object); result = new JniObject(env, object);
} }
return adoptRef(result); return result;
} }
PassRefPtr<JniClass> JniObject::GetObjectClass() { scoped_refptr<JniClass> JniObject::GetObjectClass() {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -66,15 +66,15 @@ PassRefPtr<JniClass> JniObject::GetObjectClass() { ...@@ -66,15 +66,15 @@ PassRefPtr<JniClass> JniObject::GetObjectClass() {
jclass clazz = env->GetObjectClass(java_object()); jclass clazz = env->GetObjectClass(java_object());
if (CheckJniException(env, &exception)) goto fail; if (CheckJniException(env, &exception)) goto fail;
return adoptRef(new JniClass(env, clazz)); return new JniClass(env, clazz);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
PassRefPtr<JniObject> JniObject::GetObjectField(jfieldID fieldId) { scoped_refptr<JniObject> JniObject::GetObjectField(jfieldID fieldId) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -86,7 +86,7 @@ PassRefPtr<JniObject> JniObject::GetObjectField(jfieldID fieldId) { ...@@ -86,7 +86,7 @@ PassRefPtr<JniObject> JniObject::GetObjectField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -102,7 +102,7 @@ bool JniObject::GetBooleanField(jfieldID fieldId) { ...@@ -102,7 +102,7 @@ bool JniObject::GetBooleanField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -118,7 +118,7 @@ int64_t JniObject::GetByteField(jfieldID fieldId) { ...@@ -118,7 +118,7 @@ int64_t JniObject::GetByteField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -134,7 +134,7 @@ int64_t JniObject::GetCharField(jfieldID fieldId) { ...@@ -134,7 +134,7 @@ int64_t JniObject::GetCharField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -150,7 +150,7 @@ int64_t JniObject::GetShortField(jfieldID fieldId) { ...@@ -150,7 +150,7 @@ int64_t JniObject::GetShortField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -166,7 +166,7 @@ int64_t JniObject::GetIntField(jfieldID fieldId) { ...@@ -166,7 +166,7 @@ int64_t JniObject::GetIntField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -182,7 +182,7 @@ int64_t JniObject::GetLongField(jfieldID fieldId) { ...@@ -182,7 +182,7 @@ int64_t JniObject::GetLongField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -198,7 +198,7 @@ double JniObject::GetFloatField(jfieldID fieldId) { ...@@ -198,7 +198,7 @@ double JniObject::GetFloatField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -214,7 +214,7 @@ double JniObject::GetDoubleField(jfieldID fieldId) { ...@@ -214,7 +214,7 @@ double JniObject::GetDoubleField(jfieldID fieldId) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -231,7 +231,7 @@ void JniObject::SetObjectField(jfieldID fieldId, const JniObject* value) { ...@@ -231,7 +231,7 @@ void JniObject::SetObjectField(jfieldID fieldId, const JniObject* value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -248,7 +248,7 @@ void JniObject::SetBooleanField(jfieldID fieldId, bool value) { ...@@ -248,7 +248,7 @@ void JniObject::SetBooleanField(jfieldID fieldId, bool value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -264,7 +264,7 @@ void JniObject::SetByteField(jfieldID fieldId, int64_t value) { ...@@ -264,7 +264,7 @@ void JniObject::SetByteField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -280,7 +280,7 @@ void JniObject::SetCharField(jfieldID fieldId, int64_t value) { ...@@ -280,7 +280,7 @@ void JniObject::SetCharField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -296,7 +296,7 @@ void JniObject::SetShortField(jfieldID fieldId, int64_t value) { ...@@ -296,7 +296,7 @@ void JniObject::SetShortField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -312,7 +312,7 @@ void JniObject::SetIntField(jfieldID fieldId, int64_t value) { ...@@ -312,7 +312,7 @@ void JniObject::SetIntField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -328,7 +328,7 @@ void JniObject::SetLongField(jfieldID fieldId, int64_t value) { ...@@ -328,7 +328,7 @@ void JniObject::SetLongField(jfieldID fieldId, int64_t value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -344,7 +344,7 @@ void JniObject::SetFloatField(jfieldID fieldId, double value) { ...@@ -344,7 +344,7 @@ void JniObject::SetFloatField(jfieldID fieldId, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
...@@ -360,11 +360,11 @@ void JniObject::SetDoubleField(jfieldID fieldId, double value) { ...@@ -360,11 +360,11 @@ void JniObject::SetDoubleField(jfieldID fieldId, double value) {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
PassRefPtr<JniObject> JniObject::CallObjectMethod( scoped_refptr<JniObject> JniObject::CallObjectMethod(
jmethodID methodId, jmethodID methodId,
const std::vector<Dart_Handle>& args) { const std::vector<Dart_Handle>& args) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
...@@ -383,7 +383,7 @@ PassRefPtr<JniObject> JniObject::CallObjectMethod( ...@@ -383,7 +383,7 @@ PassRefPtr<JniObject> JniObject::CallObjectMethod(
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -405,7 +405,7 @@ bool JniObject::CallBooleanMethod(jmethodID methodId, ...@@ -405,7 +405,7 @@ bool JniObject::CallBooleanMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return false; return false;
} }
...@@ -427,7 +427,7 @@ int64_t JniObject::CallByteMethod(jmethodID methodId, ...@@ -427,7 +427,7 @@ int64_t JniObject::CallByteMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -449,7 +449,7 @@ int64_t JniObject::CallCharMethod(jmethodID methodId, ...@@ -449,7 +449,7 @@ int64_t JniObject::CallCharMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -471,7 +471,7 @@ int64_t JniObject::CallShortMethod(jmethodID methodId, ...@@ -471,7 +471,7 @@ int64_t JniObject::CallShortMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -493,7 +493,7 @@ int64_t JniObject::CallIntMethod(jmethodID methodId, ...@@ -493,7 +493,7 @@ int64_t JniObject::CallIntMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -515,7 +515,7 @@ int64_t JniObject::CallLongMethod(jmethodID methodId, ...@@ -515,7 +515,7 @@ int64_t JniObject::CallLongMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -537,7 +537,7 @@ double JniObject::CallFloatMethod(jmethodID methodId, ...@@ -537,7 +537,7 @@ double JniObject::CallFloatMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -559,7 +559,7 @@ double JniObject::CallDoubleMethod(jmethodID methodId, ...@@ -559,7 +559,7 @@ double JniObject::CallDoubleMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return 0; return 0;
} }
...@@ -580,7 +580,7 @@ void JniObject::CallVoidMethod(jmethodID methodId, ...@@ -580,7 +580,7 @@ void JniObject::CallVoidMethod(jmethodID methodId,
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return; return;
} }
......
...@@ -8,28 +8,27 @@ ...@@ -8,28 +8,27 @@
#include <jni.h> #include <jni.h>
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace blink { namespace blink {
class JniClass; class JniClass;
// Wrapper that exposes a JNI jobject to Dart // Wrapper that exposes a JNI jobject to Dart
class JniObject : public ThreadSafeRefCounted<JniObject>, public DartWrappable { class JniObject : public base::RefCountedThreadSafe<JniObject>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~JniObject() override; ~JniObject() override;
static PassRefPtr<JniObject> Create(JNIEnv* env, jobject object); static scoped_refptr<JniObject> Create(JNIEnv* env, jobject object);
jobject java_object() const { return object_.obj(); } jobject java_object() const { return object_.obj(); }
PassRefPtr<JniClass> GetObjectClass(); scoped_refptr<JniClass> GetObjectClass();
PassRefPtr<JniObject> GetObjectField(jfieldID fieldId); scoped_refptr<JniObject> GetObjectField(jfieldID fieldId);
bool GetBooleanField(jfieldID fieldId); bool GetBooleanField(jfieldID fieldId);
int64_t GetByteField(jfieldID fieldId); int64_t GetByteField(jfieldID fieldId);
int64_t GetCharField(jfieldID fieldId); int64_t GetCharField(jfieldID fieldId);
...@@ -49,8 +48,8 @@ class JniObject : public ThreadSafeRefCounted<JniObject>, public DartWrappable { ...@@ -49,8 +48,8 @@ class JniObject : public ThreadSafeRefCounted<JniObject>, public DartWrappable {
void SetFloatField(jfieldID fieldId, double value); void SetFloatField(jfieldID fieldId, double value);
void SetDoubleField(jfieldID fieldId, double value); void SetDoubleField(jfieldID fieldId, double value);
PassRefPtr<JniObject> CallObjectMethod(jmethodID methodId, scoped_refptr<JniObject> CallObjectMethod(jmethodID methodId,
const std::vector<Dart_Handle>& args); const std::vector<Dart_Handle>& args);
bool CallBooleanMethod(jmethodID methodId, bool CallBooleanMethod(jmethodID methodId,
const std::vector<Dart_Handle>& args); const std::vector<Dart_Handle>& args);
int64_t CallByteMethod(jmethodID methodId, int64_t CallByteMethod(jmethodID methodId,
......
...@@ -18,7 +18,7 @@ jstring JniString::java_string() { ...@@ -18,7 +18,7 @@ jstring JniString::java_string() {
return static_cast<jstring>(java_object()); return static_cast<jstring>(java_object());
} }
PassRefPtr<JniString> JniString::Create(Dart_Handle dart_string) { scoped_refptr<JniString> JniString::Create(Dart_Handle dart_string) {
Dart_Handle exception = nullptr; Dart_Handle exception = nullptr;
{ {
ENTER_JNI(); ENTER_JNI();
...@@ -27,11 +27,11 @@ PassRefPtr<JniString> JniString::Create(Dart_Handle dart_string) { ...@@ -27,11 +27,11 @@ PassRefPtr<JniString> JniString::Create(Dart_Handle dart_string) {
&exception); &exception);
if (exception) goto fail; if (exception) goto fail;
return adoptRef(new JniString(env, java_string)); return new JniString(env, java_string);
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return nullptr; return nullptr;
} }
...@@ -53,7 +53,7 @@ Dart_Handle JniString::GetText() { ...@@ -53,7 +53,7 @@ Dart_Handle JniString::GetText() {
} }
fail: fail:
Dart_ThrowException(exception); Dart_ThrowException(exception);
ASSERT_NOT_REACHED(); NOTREACHED();
return Dart_Null(); return Dart_Null();
} }
......
...@@ -18,7 +18,7 @@ class JniString : public JniObject { ...@@ -18,7 +18,7 @@ class JniString : public JniObject {
public: public:
~JniString() override; ~JniString() override;
static PassRefPtr<JniString> Create(Dart_Handle dart_string); static scoped_refptr<JniString> Create(Dart_Handle dart_string);
Dart_Handle GetText(); Dart_Handle GetText();
private: private:
......
...@@ -20,10 +20,10 @@ IMPLEMENT_WRAPPERTYPEINFO(ui, Scene); ...@@ -20,10 +20,10 @@ IMPLEMENT_WRAPPERTYPEINFO(ui, Scene);
DART_BIND_ALL(Scene, FOR_EACH_BINDING) DART_BIND_ALL(Scene, FOR_EACH_BINDING)
PassRefPtr<Scene> Scene::create( scoped_refptr<Scene> Scene::create(
std::unique_ptr<flow::Layer> rootLayer, std::unique_ptr<flow::Layer> rootLayer,
uint32_t rasterizerTracingThreshold) { uint32_t rasterizerTracingThreshold) {
return adoptRef(new Scene(std::move(rootLayer), rasterizerTracingThreshold)); return new Scene(std::move(rootLayer), rasterizerTracingThreshold);
} }
Scene::Scene(std::unique_ptr<flow::Layer> rootLayer, Scene::Scene(std::unique_ptr<flow::Layer> rootLayer,
......
...@@ -8,21 +8,20 @@ ...@@ -8,21 +8,20 @@
#include <stdint.h> #include <stdint.h>
#include <memory> #include <memory>
#include "base/memory/ref_counted.h"
#include "flow/layers/layer_tree.h" #include "flow/layers/layer_tree.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class Scene : public ThreadSafeRefCounted<Scene>, public DartWrappable { class Scene : public base::RefCountedThreadSafe<Scene>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~Scene() override; ~Scene() override;
static PassRefPtr<Scene> create( static scoped_refptr<Scene> create(
std::unique_ptr<flow::Layer> rootLayer, std::unique_ptr<flow::Layer> rootLayer,
uint32_t rasterizerTracingThreshold); uint32_t rasterizerTracingThreshold);
......
...@@ -214,14 +214,14 @@ void SceneBuilder::setRasterizerTracingThreshold(uint32_t frameInterval) ...@@ -214,14 +214,14 @@ void SceneBuilder::setRasterizerTracingThreshold(uint32_t frameInterval)
m_currentRasterizerTracingThreshold = frameInterval; m_currentRasterizerTracingThreshold = frameInterval;
} }
PassRefPtr<Scene> SceneBuilder::build() scoped_refptr<Scene> SceneBuilder::build()
{ {
m_currentLayer = nullptr; m_currentLayer = nullptr;
int32_t threshold = m_currentRasterizerTracingThreshold; int32_t threshold = m_currentRasterizerTracingThreshold;
m_currentRasterizerTracingThreshold = 0; m_currentRasterizerTracingThreshold = 0;
RefPtr<Scene> scene = Scene::create(std::move(m_rootLayer), threshold); scoped_refptr<Scene> scene = Scene::create(std::move(m_rootLayer), threshold);
ClearDartWrapper(); ClearDartWrapper();
return scene.release(); return std::move(scene);
} }
} // namespace blink } // namespace blink
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <stdint.h> #include <stdint.h>
#include <memory> #include <memory>
#include "base/memory/ref_counted.h"
#include "flow/layers/container_layer.h" #include "flow/layers/container_layer.h"
#include "sky/engine/bindings/exception_state.h" #include "sky/engine/bindings/exception_state.h"
#include "sky/engine/core/compositing/Scene.h" #include "sky/engine/core/compositing/Scene.h"
...@@ -21,17 +22,13 @@ ...@@ -21,17 +22,13 @@
#include "sky/engine/core/painting/RRect.h" #include "sky/engine/core/painting/RRect.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/tonic/float64_list.h" #include "sky/engine/tonic/float64_list.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
namespace blink { namespace blink {
class SceneBuilder : public ThreadSafeRefCounted<SceneBuilder>, public DartWrappable { class SceneBuilder : public base::RefCountedThreadSafe<SceneBuilder>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PassRefPtr<SceneBuilder> create() { static scoped_refptr<SceneBuilder> create() { return new SceneBuilder(); }
return adoptRef(new SceneBuilder());
}
~SceneBuilder() override; ~SceneBuilder() override;
...@@ -65,7 +62,7 @@ public: ...@@ -65,7 +62,7 @@ public:
void setRasterizerTracingThreshold(uint32_t frameInterval); void setRasterizerTracingThreshold(uint32_t frameInterval);
PassRefPtr<Scene> build(); scoped_refptr<Scene> build();
static void RegisterNatives(DartLibraryNatives* natives); static void RegisterNatives(DartLibraryNatives* natives);
......
...@@ -66,15 +66,15 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE) ...@@ -66,15 +66,15 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE)
}); });
} }
PassRefPtr<Canvas> Canvas::create(PictureRecorder* recorder, scoped_refptr<Canvas> Canvas::create(PictureRecorder* recorder,
double left, double left,
double top, double top,
double right, double right,
double bottom) { double bottom) {
ASSERT(recorder); ASSERT(recorder);
ASSERT(!recorder->isRecording()); ASSERT(!recorder->isRecording());
PassRefPtr<Canvas> canvas = adoptRef(new Canvas(recorder->beginRecording( scoped_refptr<Canvas> canvas = new Canvas(recorder->beginRecording(
SkRect::MakeLTRB(left, top, right, bottom)))); SkRect::MakeLTRB(left, top, right, bottom)));
recorder->set_canvas(canvas.get()); recorder->set_canvas(canvas.get());
return canvas; return canvas;
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#ifndef SKY_ENGINE_CORE_PAINTING_CANVAS_H_ #ifndef SKY_ENGINE_CORE_PAINTING_CANVAS_H_
#define SKY_ENGINE_CORE_PAINTING_CANVAS_H_ #define SKY_ENGINE_CORE_PAINTING_CANVAS_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/bindings/exception_state.h" #include "sky/engine/bindings/exception_state.h"
#include "sky/engine/core/painting/CanvasPath.h" #include "sky/engine/core/painting/CanvasPath.h"
#include "sky/engine/core/painting/Offset.h" #include "sky/engine/core/painting/Offset.h"
...@@ -12,13 +13,11 @@ ...@@ -12,13 +13,11 @@
#include "sky/engine/core/painting/Picture.h" #include "sky/engine/core/painting/Picture.h"
#include "sky/engine/core/painting/PictureRecorder.h" #include "sky/engine/core/painting/PictureRecorder.h"
#include "sky/engine/core/painting/Point.h" #include "sky/engine/core/painting/Point.h"
#include "sky/engine/core/painting/RRect.h"
#include "sky/engine/core/painting/Rect.h" #include "sky/engine/core/painting/Rect.h"
#include "sky/engine/core/painting/RRect.h"
#include "sky/engine/core/painting/RSTransform.h" #include "sky/engine/core/painting/RSTransform.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/tonic/float64_list.h" #include "sky/engine/tonic/float64_list.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkCanvas.h"
namespace blink { namespace blink {
...@@ -29,14 +28,14 @@ class Paragraph; ...@@ -29,14 +28,14 @@ class Paragraph;
template <> template <>
struct DartConverter<SkCanvas::VertexMode> : public DartConverterInteger<SkCanvas::VertexMode> {}; struct DartConverter<SkCanvas::VertexMode> : public DartConverterInteger<SkCanvas::VertexMode> {};
class Canvas : public ThreadSafeRefCounted<Canvas>, public DartWrappable { class Canvas : public base::RefCountedThreadSafe<Canvas>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PassRefPtr<Canvas> create(PictureRecorder* recorder, static scoped_refptr<Canvas> create(PictureRecorder* recorder,
double left, double left,
double top, double top,
double right, double right,
double bottom); double bottom);
~Canvas() override; ~Canvas() override;
......
...@@ -32,8 +32,8 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE) ...@@ -32,8 +32,8 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE)
}); });
} }
PassRefPtr<CanvasGradient> CanvasGradient::create() { scoped_refptr<CanvasGradient> CanvasGradient::create() {
return adoptRef(new CanvasGradient()); return new CanvasGradient();
} }
void CanvasGradient::initLinear(const std::vector<Point>& end_points, void CanvasGradient::initLinear(const std::vector<Point>& end_points,
......
...@@ -23,7 +23,7 @@ class CanvasGradient : public Shader { ...@@ -23,7 +23,7 @@ class CanvasGradient : public Shader {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~CanvasGradient() override; ~CanvasGradient() override;
static PassRefPtr<CanvasGradient> create(); static scoped_refptr<CanvasGradient> create();
void initLinear(const std::vector<Point>& end_points, void initLinear(const std::vector<Point>& end_points,
const std::vector<CanvasColor>& colors, const std::vector<CanvasColor>& colors,
......
...@@ -5,20 +5,19 @@ ...@@ -5,20 +5,19 @@
#ifndef SKY_ENGINE_CORE_PAINTING_CANVASIMAGE_H_ #ifndef SKY_ENGINE_CORE_PAINTING_CANVASIMAGE_H_
#define SKY_ENGINE_CORE_PAINTING_CANVASIMAGE_H_ #define SKY_ENGINE_CORE_PAINTING_CANVASIMAGE_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/core/SkImage.h"
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class CanvasImage final : public ThreadSafeRefCounted<CanvasImage>, class CanvasImage final : public base::RefCountedThreadSafe<CanvasImage>,
public DartWrappable { public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~CanvasImage() override; ~CanvasImage() override;
static PassRefPtr<CanvasImage> create() { return adoptRef(new CanvasImage); } static scoped_refptr<CanvasImage> create() { return new CanvasImage(); }
int width(); int width();
int height(); int height();
......
...@@ -57,10 +57,10 @@ CanvasPath::~CanvasPath() ...@@ -57,10 +57,10 @@ CanvasPath::~CanvasPath()
{ {
} }
PassRefPtr<CanvasPath> CanvasPath::shift(const Offset& offset) { scoped_refptr<CanvasPath> CanvasPath::shift(const Offset& offset) {
RefPtr<CanvasPath> path = CanvasPath::create(); scoped_refptr<CanvasPath> path = CanvasPath::create();
m_path.offset(offset.sk_size.width(), offset.sk_size.height(), &path->m_path); m_path.offset(offset.sk_size.width(), offset.sk_size.height(), &path->m_path);
return path.release(); return std::move(path);
} }
} // namespace blink } // namespace blink
...@@ -7,13 +7,12 @@ ...@@ -7,13 +7,12 @@
#include "math.h" #include "math.h"
#include "base/memory/ref_counted.h"
#include "sky/engine/core/painting/Offset.h" #include "sky/engine/core/painting/Offset.h"
#include "sky/engine/core/painting/Point.h" #include "sky/engine/core/painting/Point.h"
#include "sky/engine/core/painting/RRect.h" #include "sky/engine/core/painting/RRect.h"
#include "sky/engine/core/painting/Rect.h" #include "sky/engine/core/painting/Rect.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkPath.h" #include "third_party/skia/include/core/SkPath.h"
// Note: There's a very similar class in ../../platform/graphics/Path.h // Note: There's a very similar class in ../../platform/graphics/Path.h
...@@ -25,14 +24,11 @@ ...@@ -25,14 +24,11 @@
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class CanvasPath : public ThreadSafeRefCounted<CanvasPath>, public DartWrappable { class CanvasPath : public base::RefCountedThreadSafe<CanvasPath>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~CanvasPath() override; ~CanvasPath() override;
static PassRefPtr<CanvasPath> create() static scoped_refptr<CanvasPath> create() { return new CanvasPath(); }
{
return adoptRef(new CanvasPath);
}
void moveTo(float x, float y) { m_path.moveTo(x, y); } void moveTo(float x, float y) { m_path.moveTo(x, y); }
void relativeMoveTo(float x, float y) { m_path.rMoveTo(x, y); } void relativeMoveTo(float x, float y) { m_path.rMoveTo(x, y); }
...@@ -68,7 +64,7 @@ public: ...@@ -68,7 +64,7 @@ public:
const SkPath& path() const { return m_path; } const SkPath& path() const { return m_path; }
PassRefPtr<CanvasPath> shift(const Offset& offset); scoped_refptr<CanvasPath> shift(const Offset& offset);
static void RegisterNatives(DartLibraryNatives* natives); static void RegisterNatives(DartLibraryNatives* natives);
......
...@@ -23,9 +23,9 @@ void ColorFilter::RegisterNatives(DartLibraryNatives* natives) { ...@@ -23,9 +23,9 @@ void ColorFilter::RegisterNatives(DartLibraryNatives* natives) {
}); });
} }
PassRefPtr<ColorFilter> ColorFilter::create(CanvasColor color, scoped_refptr<ColorFilter> ColorFilter::create(CanvasColor color,
TransferMode transfer_mode) { TransferMode transfer_mode) {
return adoptRef(new ColorFilter(SkColorFilter::MakeModeFilter(color, transfer_mode))); return new ColorFilter(SkColorFilter::MakeModeFilter(color, transfer_mode));
} }
ColorFilter::ColorFilter(sk_sp<SkColorFilter> filter) ColorFilter::ColorFilter(sk_sp<SkColorFilter> filter)
......
...@@ -5,22 +5,21 @@ ...@@ -5,22 +5,21 @@
#ifndef SKY_ENGINE_CORE_PAINTING_COLORFILTER_H_ #ifndef SKY_ENGINE_CORE_PAINTING_COLORFILTER_H_
#define SKY_ENGINE_CORE_PAINTING_COLORFILTER_H_ #define SKY_ENGINE_CORE_PAINTING_COLORFILTER_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/core/painting/CanvasColor.h" #include "sky/engine/core/painting/CanvasColor.h"
#include "sky/engine/core/painting/TransferMode.h" #include "sky/engine/core/painting/TransferMode.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkColorFilter.h" #include "third_party/skia/include/core/SkColorFilter.h"
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class ColorFilter : public ThreadSafeRefCounted<ColorFilter>, public DartWrappable { class ColorFilter : public base::RefCountedThreadSafe<ColorFilter>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~ColorFilter() override; ~ColorFilter() override;
static PassRefPtr<ColorFilter> create(CanvasColor color, static scoped_refptr<ColorFilter> create(CanvasColor color,
TransferMode transfer_mode); TransferMode transfer_mode);
sk_sp<SkColorFilter> filter() { return filter_; } sk_sp<SkColorFilter> filter() { return filter_; }
......
...@@ -34,8 +34,8 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE) ...@@ -34,8 +34,8 @@ FOR_EACH_BINDING(DART_REGISTER_NATIVE)
}); });
} }
PassRefPtr<ImageFilter> ImageFilter::create() { scoped_refptr<ImageFilter> ImageFilter::create() {
return adoptRef(new ImageFilter()); return new ImageFilter();
} }
ImageFilter::ImageFilter() { ImageFilter::ImageFilter() {
......
...@@ -5,20 +5,19 @@ ...@@ -5,20 +5,19 @@
#ifndef SKY_ENGINE_CORE_PAINTING_IMAGE_FILTER_H_ #ifndef SKY_ENGINE_CORE_PAINTING_IMAGE_FILTER_H_
#define SKY_ENGINE_CORE_PAINTING_IMAGE_FILTER_H_ #define SKY_ENGINE_CORE_PAINTING_IMAGE_FILTER_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/core/painting/CanvasImage.h" #include "sky/engine/core/painting/CanvasImage.h"
#include "sky/engine/core/painting/Picture.h" #include "sky/engine/core/painting/Picture.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkImageFilter.h" #include "third_party/skia/include/core/SkImageFilter.h"
namespace blink { namespace blink {
class ImageFilter : public ThreadSafeRefCounted<ImageFilter>, public DartWrappable { class ImageFilter : public base::RefCountedThreadSafe<ImageFilter>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~ImageFilter() override; ~ImageFilter() override;
static PassRefPtr<ImageFilter> create(); static scoped_refptr<ImageFilter> create();
void initImage(CanvasImage* image); void initImage(CanvasImage* image);
void initPicture(Picture*); void initPicture(Picture*);
......
...@@ -38,8 +38,8 @@ void ImageShader::RegisterNatives(DartLibraryNatives* natives) { ...@@ -38,8 +38,8 @@ void ImageShader::RegisterNatives(DartLibraryNatives* natives) {
}); });
} }
PassRefPtr<ImageShader> ImageShader::create() { scoped_refptr<ImageShader> ImageShader::create() {
return adoptRef(new ImageShader()); return new ImageShader();
} }
void ImageShader::initWithImage(CanvasImage* image, void ImageShader::initWithImage(CanvasImage* image,
......
...@@ -22,7 +22,7 @@ class ImageShader : public Shader { ...@@ -22,7 +22,7 @@ class ImageShader : public Shader {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~ImageShader() override; ~ImageShader() override;
static PassRefPtr<ImageShader> create(); static scoped_refptr<ImageShader> create();
void initWithImage(CanvasImage* image, void initWithImage(CanvasImage* image,
SkShader::TileMode tmx, SkShader::TileMode tmx,
......
...@@ -24,10 +24,10 @@ void MaskFilter::RegisterNatives(DartLibraryNatives* natives) { ...@@ -24,10 +24,10 @@ void MaskFilter::RegisterNatives(DartLibraryNatives* natives) {
}); });
} }
PassRefPtr<MaskFilter> MaskFilter::create( scoped_refptr<MaskFilter> MaskFilter::create(
unsigned style, double sigma, unsigned flags) { unsigned style, double sigma, unsigned flags) {
return adoptRef(new MaskFilter(SkBlurMaskFilter::Make( return new MaskFilter(SkBlurMaskFilter::Make(
static_cast<SkBlurStyle>(style), sigma, flags))); static_cast<SkBlurStyle>(style), sigma, flags));
} }
MaskFilter::MaskFilter(sk_sp<SkMaskFilter> filter) MaskFilter::MaskFilter(sk_sp<SkMaskFilter> filter)
......
...@@ -5,9 +5,8 @@ ...@@ -5,9 +5,8 @@
#ifndef SKY_ENGINE_CORE_PAINTING_MASKFILTER_H_ #ifndef SKY_ENGINE_CORE_PAINTING_MASKFILTER_H_
#define SKY_ENGINE_CORE_PAINTING_MASKFILTER_H_ #define SKY_ENGINE_CORE_PAINTING_MASKFILTER_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkMaskFilter.h" #include "third_party/skia/include/core/SkMaskFilter.h"
class SkMaskFilter; class SkMaskFilter;
...@@ -15,11 +14,11 @@ class SkMaskFilter; ...@@ -15,11 +14,11 @@ class SkMaskFilter;
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class MaskFilter : public ThreadSafeRefCounted<MaskFilter>, public DartWrappable { class MaskFilter : public base::RefCountedThreadSafe<MaskFilter>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~MaskFilter() override; ~MaskFilter() override;
static PassRefPtr<MaskFilter> create( static scoped_refptr<MaskFilter> create(
unsigned style, double sigma, unsigned flags); unsigned style, double sigma, unsigned flags);
sk_sp<SkMaskFilter> filter() { return filter_; } sk_sp<SkMaskFilter> filter() { return filter_; }
......
...@@ -19,10 +19,10 @@ IMPLEMENT_WRAPPERTYPEINFO(ui, Picture); ...@@ -19,10 +19,10 @@ IMPLEMENT_WRAPPERTYPEINFO(ui, Picture);
DART_BIND_ALL(Picture, FOR_EACH_BINDING) DART_BIND_ALL(Picture, FOR_EACH_BINDING)
PassRefPtr<Picture> Picture::create(sk_sp<SkPicture> skPicture) scoped_refptr<Picture> Picture::create(sk_sp<SkPicture> skPicture)
{ {
ASSERT(skPicture); ASSERT(skPicture);
return adoptRef(new Picture(skPicture)); return new Picture(skPicture);
} }
Picture::Picture(sk_sp<SkPicture> skPicture) Picture::Picture(sk_sp<SkPicture> skPicture)
......
...@@ -5,20 +5,19 @@ ...@@ -5,20 +5,19 @@
#ifndef SKY_ENGINE_CORE_PAINTING_PICTURE_H_ #ifndef SKY_ENGINE_CORE_PAINTING_PICTURE_H_
#define SKY_ENGINE_CORE_PAINTING_PICTURE_H_ #define SKY_ENGINE_CORE_PAINTING_PICTURE_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
namespace blink { namespace blink {
class Canvas; class Canvas;
class DartLibraryNatives; class DartLibraryNatives;
class Picture : public ThreadSafeRefCounted<Picture>, public DartWrappable { class Picture : public base::RefCountedThreadSafe<Picture>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~Picture() override; ~Picture() override;
static PassRefPtr<Picture> create(sk_sp<SkPicture> skPicture); static scoped_refptr<Picture> create(sk_sp<SkPicture> skPicture);
sk_sp<SkPicture> toSkia() const { return m_picture; } sk_sp<SkPicture> toSkia() const { return m_picture; }
......
...@@ -50,22 +50,22 @@ SkCanvas* PictureRecorder::beginRecording(SkRect bounds) ...@@ -50,22 +50,22 @@ SkCanvas* PictureRecorder::beginRecording(SkRect bounds)
&m_rtreeFactory, SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag); &m_rtreeFactory, SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag);
} }
PassRefPtr<Picture> PictureRecorder::endRecording() scoped_refptr<Picture> PictureRecorder::endRecording()
{ {
if (!isRecording()) if (!isRecording())
return nullptr; return nullptr;
RefPtr<Picture> picture = Picture::create( scoped_refptr<Picture> picture = Picture::create(
m_pictureRecorder.finishRecordingAsPicture()); m_pictureRecorder.finishRecordingAsPicture());
m_canvas->clearSkCanvas(); m_canvas->clearSkCanvas();
m_canvas->ClearDartWrapper(); m_canvas->ClearDartWrapper();
m_canvas = nullptr; m_canvas = nullptr;
ClearDartWrapper(); ClearDartWrapper();
return picture.release(); return std::move(picture);
} }
void PictureRecorder::set_canvas(PassRefPtr<Canvas> canvas) void PictureRecorder::set_canvas(scoped_refptr<Canvas> canvas)
{ {
m_canvas = canvas; m_canvas = std::move(canvas);
} }
} // namespace blink } // namespace blink
...@@ -5,10 +5,9 @@ ...@@ -5,10 +5,9 @@
#ifndef SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_ #ifndef SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_
#define SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_ #define SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/core/painting/Rect.h" #include "sky/engine/core/painting/Rect.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/skia/include/core/SkPictureRecorder.h"
namespace blink { namespace blink {
...@@ -16,22 +15,19 @@ class Canvas; ...@@ -16,22 +15,19 @@ class Canvas;
class DartLibraryNatives; class DartLibraryNatives;
class Picture; class Picture;
class PictureRecorder : public ThreadSafeRefCounted<PictureRecorder>, class PictureRecorder : public base::RefCountedThreadSafe<PictureRecorder>,
public DartWrappable { public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PassRefPtr<PictureRecorder> create() static scoped_refptr<PictureRecorder> create() { return new PictureRecorder(); }
{
return adoptRef(new PictureRecorder());
}
~PictureRecorder(); ~PictureRecorder();
SkCanvas* beginRecording(SkRect bounds); SkCanvas* beginRecording(SkRect bounds);
PassRefPtr<Picture> endRecording(); scoped_refptr<Picture> endRecording();
bool isRecording(); bool isRecording();
void set_canvas(PassRefPtr<Canvas> canvas); void set_canvas(scoped_refptr<Canvas> canvas);
static void RegisterNatives(DartLibraryNatives* natives); static void RegisterNatives(DartLibraryNatives* natives);
...@@ -40,7 +36,7 @@ private: ...@@ -40,7 +36,7 @@ private:
SkRTreeFactory m_rtreeFactory; SkRTreeFactory m_rtreeFactory;
SkPictureRecorder m_pictureRecorder; SkPictureRecorder m_pictureRecorder;
RefPtr<Canvas> m_canvas; scoped_refptr<Canvas> m_canvas;
}; };
} // namespace blink } // namespace blink
......
...@@ -5,14 +5,13 @@ ...@@ -5,14 +5,13 @@
#ifndef SKY_ENGINE_CORE_PAINTING_SHADER_H_ #ifndef SKY_ENGINE_CORE_PAINTING_SHADER_H_
#define SKY_ENGINE_CORE_PAINTING_SHADER_H_ #define SKY_ENGINE_CORE_PAINTING_SHADER_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "third_party/skia/include/core/SkShader.h" #include "third_party/skia/include/core/SkShader.h"
namespace blink { namespace blink {
class Shader : public ThreadSafeRefCounted<Shader>, public DartWrappable { class Shader : public base::RefCountedThreadSafe<Shader>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
~Shader() override; ~Shader() override;
......
...@@ -46,7 +46,7 @@ void InvokeImageCallback(sk_sp<SkImage> image, ...@@ -46,7 +46,7 @@ void InvokeImageCallback(sk_sp<SkImage> image,
if (!image) { if (!image) {
DartInvoke(callback->value(), {Dart_Null()}); DartInvoke(callback->value(), {Dart_Null()});
} else { } else {
RefPtr<CanvasImage> resultImage = CanvasImage::create(); scoped_refptr<CanvasImage> resultImage = CanvasImage::create();
resultImage->setImage(std::move(image)); resultImage->setImage(std::move(image));
DartInvoke(callback->value(), {ToDart(resultImage)}); DartInvoke(callback->value(), {ToDart(resultImage)});
} }
......
...@@ -5,9 +5,8 @@ ...@@ -5,9 +5,8 @@
#ifndef SKY_ENGINE_CORE_TEXT_PARAGRAPH_H_ #ifndef SKY_ENGINE_CORE_TEXT_PARAGRAPH_H_
#define SKY_ENGINE_CORE_TEXT_PARAGRAPH_H_ #define SKY_ENGINE_CORE_TEXT_PARAGRAPH_H_
#include "base/memory/ref_counted.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include "sky/engine/core/painting/Canvas.h" #include "sky/engine/core/painting/Canvas.h"
#include "sky/engine/core/painting/Offset.h" #include "sky/engine/core/painting/Offset.h"
#include "sky/engine/core/rendering/RenderView.h" #include "sky/engine/core/rendering/RenderView.h"
...@@ -16,11 +15,11 @@ ...@@ -16,11 +15,11 @@
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class Paragraph : public ThreadSafeRefCounted<Paragraph>, public DartWrappable { class Paragraph : public base::RefCountedThreadSafe<Paragraph>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PassRefPtr<Paragraph> create(PassOwnPtr<RenderView> renderView) { static scoped_refptr<Paragraph> create(PassOwnPtr<RenderView> renderView) {
return adoptRef(new Paragraph(renderView)); return new Paragraph(renderView);
} }
~Paragraph() override; ~Paragraph() override;
......
...@@ -231,7 +231,7 @@ void ParagraphBuilder::addText(const std::string& text) ...@@ -231,7 +231,7 @@ void ParagraphBuilder::addText(const std::string& text)
m_currentRenderObject->addChild(renderText); m_currentRenderObject->addChild(renderText);
} }
PassRefPtr<Paragraph> ParagraphBuilder::build(Int32List& encoded, const std::string& fontFamily, double fontSize, double lineHeight) scoped_refptr<Paragraph> ParagraphBuilder::build(Int32List& encoded, const std::string& fontFamily, double fontSize, double lineHeight)
{ {
DCHECK(encoded.num_elements() == 5); DCHECK(encoded.num_elements() == 5);
int32_t mask = encoded[0]; int32_t mask = encoded[0];
......
...@@ -8,18 +8,15 @@ ...@@ -8,18 +8,15 @@
#include "sky/engine/core/text/Paragraph.h" #include "sky/engine/core/text/Paragraph.h"
#include "sky/engine/tonic/dart_wrappable.h" #include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/tonic/int32_list.h" #include "sky/engine/tonic/int32_list.h"
#include "sky/engine/wtf/PassRefPtr.h" #include "base/memory/ref_counted.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
namespace blink { namespace blink {
class DartLibraryNatives; class DartLibraryNatives;
class ParagraphBuilder : public ThreadSafeRefCounted<ParagraphBuilder>, public DartWrappable { class ParagraphBuilder : public base::RefCountedThreadSafe<ParagraphBuilder>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PassRefPtr<ParagraphBuilder> create() { static scoped_refptr<ParagraphBuilder> create() { return new ParagraphBuilder(); }
return adoptRef(new ParagraphBuilder());
}
~ParagraphBuilder() override; ~ParagraphBuilder() override;
...@@ -28,7 +25,7 @@ public: ...@@ -28,7 +25,7 @@ public:
void addText(const std::string& text); void addText(const std::string& text);
PassRefPtr<Paragraph> build(Int32List& encoded, const std::string& fontFamily, double fontSize, double lineHeight); scoped_refptr<Paragraph> build(Int32List& encoded, const std::string& fontFamily, double fontSize, double lineHeight);
static void RegisterNatives(DartLibraryNatives* natives); static void RegisterNatives(DartLibraryNatives* natives);
......
...@@ -62,7 +62,6 @@ source_set("tonic") { ...@@ -62,7 +62,6 @@ source_set("tonic") {
"//dart/runtime/bin:embedded_dart_io", "//dart/runtime/bin:embedded_dart_io",
"//mojo/data_pipe_utils", "//mojo/data_pipe_utils",
"//mojo/public/cpp/system", "//mojo/public/cpp/system",
"//sky/engine/wtf",
] ]
public_deps = [ public_deps = [
......
...@@ -16,9 +16,6 @@ DartWrappable::~DartWrappable() { ...@@ -16,9 +16,6 @@ DartWrappable::~DartWrappable() {
CHECK(!dart_wrapper_); CHECK(!dart_wrapper_);
} }
void DartWrappable::AcceptDartGCVisitor(DartGCVisitor& visitor) const {
}
Dart_Handle DartWrappable::CreateDartWrapper(DartState* dart_state) { Dart_Handle DartWrappable::CreateDartWrapper(DartState* dart_state) {
DCHECK(!dart_wrapper_); DCHECK(!dart_wrapper_);
const DartWrapperInfo& info = GetDartWrapperInfo(); const DartWrapperInfo& info = GetDartWrapperInfo();
......
...@@ -6,20 +6,17 @@ ...@@ -6,20 +6,17 @@
#define SKY_ENGINE_TONIC_DART_WRAPPABLE_H_ #define SKY_ENGINE_TONIC_DART_WRAPPABLE_H_
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ref_counted.h"
#include "base/template_util.h" #include "base/template_util.h"
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "sky/engine/tonic/dart_converter.h" #include "sky/engine/tonic/dart_converter.h"
#include "sky/engine/tonic/dart_error.h" #include "sky/engine/tonic/dart_error.h"
#include "sky/engine/tonic/dart_state.h" #include "sky/engine/tonic/dart_state.h"
#include "sky/engine/tonic/dart_wrapper_info.h" #include "sky/engine/tonic/dart_wrapper_info.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefPtr.h"
#include "sky/engine/wtf/ThreadSafeRefCounted.h"
#include <type_traits> #include <type_traits>
namespace blink { namespace blink {
class DartGCVisitor;
struct DartWrapperInfo; struct DartWrapperInfo;
// DartWrappable is a base class that you can inherit from in order to be // DartWrappable is a base class that you can inherit from in order to be
...@@ -39,11 +36,6 @@ class DartWrappable { ...@@ -39,11 +36,6 @@ class DartWrappable {
// base class's implementation of this function. // base class's implementation of this function.
virtual const DartWrapperInfo& GetDartWrapperInfo() const = 0; virtual const DartWrapperInfo& GetDartWrapperInfo() const = 0;
// Subclasses that wish to integrate with the Dart garbage collector should
// override this function. Please call your base class's AcceptDartGCVisitor
// at the end of your override.
virtual void AcceptDartGCVisitor(DartGCVisitor& visitor) const;
Dart_Handle CreateDartWrapper(DartState* dart_state); Dart_Handle CreateDartWrapper(DartState* dart_state);
void AssociateWithDartWrapper(Dart_NativeArguments args); void AssociateWithDartWrapper(Dart_NativeArguments args);
void ClearDartWrapper(); // Warning: Might delete this. void ClearDartWrapper(); // Warning: Might delete this.
...@@ -72,10 +64,10 @@ class DartWrappable { ...@@ -72,10 +64,10 @@ class DartWrappable {
#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName) \ #define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName) \
static void RefObject_##LibraryName_##ClassName(DartWrappable* impl) { \ static void RefObject_##LibraryName_##ClassName(DartWrappable* impl) { \
static_cast<ClassName*>(impl)->ref(); \ static_cast<ClassName*>(impl)->AddRef(); \
} \ } \
static void DerefObject_##LibraryName_##ClassName(DartWrappable* impl) { \ static void DerefObject_##LibraryName_##ClassName(DartWrappable* impl) { \
static_cast<ClassName*>(impl)->deref(); \ static_cast<ClassName*>(impl)->Release(); \
} \ } \
static const DartWrapperInfo kDartWrapperInfo_##LibraryName_##ClassName = { \ static const DartWrapperInfo kDartWrapperInfo_##LibraryName_##ClassName = { \
#LibraryName, \ #LibraryName, \
...@@ -86,7 +78,8 @@ static const DartWrapperInfo kDartWrapperInfo_##LibraryName_##ClassName = { \ ...@@ -86,7 +78,8 @@ static const DartWrapperInfo kDartWrapperInfo_##LibraryName_##ClassName = { \
}; \ }; \
const DartWrapperInfo& ClassName::dart_wrapper_info_ = \ const DartWrapperInfo& ClassName::dart_wrapper_info_ = \
kDartWrapperInfo_##LibraryName_##ClassName; \ kDartWrapperInfo_##LibraryName_##ClassName; \
static_assert(std::is_base_of<WTF::ThreadSafeRefCountedBase, ClassName>::value,\ static_assert(std::is_base_of<base::subtle::RefCountedThreadSafeBase, \
ClassName>::value, \
#ClassName " must be thread-safe reference-countable."); #ClassName " must be thread-safe reference-countable.");
struct DartConverterWrappable { struct DartConverterWrappable {
...@@ -136,20 +129,17 @@ struct DartConverter< ...@@ -136,20 +129,17 @@ struct DartConverter<
}; };
template<typename T> template<typename T>
struct DartConverter<RefPtr<T>> { struct DartConverter<scoped_refptr<T>> {
static Dart_Handle ToDart(RefPtr<T> val) { static Dart_Handle ToDart(const scoped_refptr<T>& val) {
return DartConverter<T*>::ToDart(val.get()); return DartConverter<T*>::ToDart(val.get());
} }
static RefPtr<T> FromDart(Dart_Handle handle) { static scoped_refptr<T> FromDart(Dart_Handle handle) {
return DartConverter<T*>::FromDart(handle); return DartConverter<T*>::FromDart(handle);
} }
};
template<typename T>
struct DartConverter<PassRefPtr<T>> {
static void SetReturnValue(Dart_NativeArguments args, static void SetReturnValue(Dart_NativeArguments args,
PassRefPtr<T> val, const scoped_refptr<T>& val,
bool auto_scope = true) { bool auto_scope = true) {
DartConverter<T*>::SetReturnValue(args, val.get()); DartConverter<T*>::SetReturnValue(args, val.get());
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册