| Index: runtime/include/dart_api.h
|
| diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
|
| index ed9f8710f516445e1bddf22e2efcc081ee5e0bbb..c9732c3d7aa7b1767867e70d6e1e66c9aa180338 100755
|
| --- a/runtime/include/dart_api.h
|
| +++ b/runtime/include/dart_api.h
|
| @@ -238,6 +238,15 @@ DART_EXPORT void Dart_DeletePersistentHandle(Dart_Handle object);
|
| * explicitly deallocated by calling Dart_DeletePersistentHandle.
|
| *
|
| * Requires there to be a current isolate.
|
| + *
|
| + * \param object An object.
|
| + * \param peer A pointer to a native object or NULL. This value is
|
| + * provided to callback when it is invoked.
|
| + * \param callback A function pointer that will be invoked sometime
|
| + * after the object is garbage collected.
|
| + *
|
| + * \return Success if the weak persistent handle was
|
| + * created. Otherwise, returns an error.
|
| */
|
| DART_EXPORT Dart_Handle Dart_NewWeakPersistentHandle(
|
| Dart_Handle object,
|
| @@ -251,6 +260,43 @@ DART_EXPORT Dart_Handle Dart_NewWeakPersistentHandle(
|
| */
|
| DART_EXPORT bool Dart_IsWeakPersistentHandle(Dart_Handle object);
|
|
|
| +/**
|
| + * Allocates a prologue weak persistent handle for an object.
|
| + *
|
| + * Prologue weak persistent handles are similar to weak persistent
|
| + * handles but exhibit different behavior during garbage collections
|
| + * that invoke the prologue and epilogue callbacks. While weak
|
| + * persistent handles always weakly reference their referents,
|
| + * prologue weak persistent handles weakly reference their referents
|
| + * only during a garbage collection that invokes the prologue and
|
| + * epilogue callbacks. During all other garbage collections, prologue
|
| + * weak persistent handles strongly reference their referents.
|
| + *
|
| + * This handle has the lifetime of the current isolate unless it is
|
| + * explicitly deallocated by calling Dart_DeletePersistentHandle.
|
| + *
|
| + * Requires there to be a current isolate.
|
| + *
|
| + * \param object An object.
|
| + * \param peer A pointer to a native object or NULL. This value is
|
| + * provided to callback when it is invoked.
|
| + * \param callback A function pointer that will be invoked sometime
|
| + * after the object is garbage collected.
|
| + *
|
| + * \return Success if the prologue weak persistent handle was created.
|
| + * Otherwise, returns an error.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_NewPrologueWeakPersistentHandle(
|
| + Dart_Handle object,
|
| + void* peer,
|
| + Dart_WeakPersistentHandleFinalizer callback);
|
| +
|
| +/**
|
| + * Is this object a prologue weak persistent handle?
|
| + *
|
| + * Requires there to be a current isolate.
|
| + */
|
| +DART_EXPORT bool Dart_IsPrologueWeakPersistentHandle(Dart_Handle object);
|
|
|
| /**
|
| * Constructs a set of weak references from the Cartesian product of
|
|
|