| Index: runtime/include/dart_api.h
|
| ===================================================================
|
| --- runtime/include/dart_api.h (revision 35211)
|
| +++ runtime/include/dart_api.h (working copy)
|
| @@ -527,28 +527,87 @@
|
| DART_EXPORT bool Dart_IsPrologueWeakPersistentHandle(
|
| Dart_WeakPersistentHandle object);
|
|
|
| +typedef struct _Dart_WeakReferenceSetBuilder* Dart_WeakReferenceSetBuilder;
|
| +typedef struct _Dart_WeakReferenceSet* Dart_WeakReferenceSet;
|
| +
|
| /**
|
| + * Constructs a weak references set builder.
|
| + *
|
| + * \returns a pointer to the weak reference set builder if successful.
|
| + * Otherwise, returns NULL.
|
| + */
|
| +DART_EXPORT Dart_WeakReferenceSetBuilder Dart_NewWeakReferenceSetBuilder();
|
| +
|
| +/**
|
| * Constructs a set of weak references from the Cartesian product of
|
| * the objects in the key set and the objects in values set.
|
| *
|
| - * \param keys A set of object references. These references will be
|
| + * \param set_builder The weak references set builder which was created
|
| + * using Dart_NewWeakReferenceSetBuilder().
|
| + * \param key An object reference. This references will be
|
| * considered weak by the garbage collector.
|
| - * \param num_keys the number of objects in the keys set.
|
| - * \param values A set of object references. These references will be
|
| + * \param value An object reference. This reference will be
|
| * considered weak by garbage collector unless any object reference
|
| * in 'keys' is found to be strong.
|
| - * \param num_values the size of the values set
|
| *
|
| - * \return Success if the weak reference set could be created.
|
| - * Otherwise, returns an error handle.
|
| + * \return a pointer to the weak reference set if successful.
|
| + * Otherwise, returns NULL.
|
| */
|
| -DART_EXPORT Dart_Handle Dart_NewWeakReferenceSet(
|
| - Dart_WeakPersistentHandle* keys,
|
| - intptr_t num_keys,
|
| - Dart_WeakPersistentHandle* values,
|
| - intptr_t num_values);
|
| +DART_EXPORT Dart_WeakReferenceSet Dart_NewWeakReferenceSet(
|
| + Dart_WeakReferenceSetBuilder set_builder,
|
| + Dart_WeakPersistentHandle key,
|
| + Dart_WeakPersistentHandle value);
|
|
|
| +/**
|
| + * Append the pair of key/value object references to the weak references set.
|
| + *
|
| + * \param reference_set A weak references set into which the pair of key/value
|
| + * needs to be added.
|
| + * \param key An object reference. This references will be
|
| + * considered weak by the garbage collector.
|
| + * \param value An object reference. This reference will be
|
| + * considered weak by garbage collector unless any object reference
|
| + * in 'keys' is found to be strong.
|
| + *
|
| + * \return Success if the prologue weak persistent handle was created.
|
| + * Otherwise, returns an error.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_AppendToWeakReferenceSet(
|
| + Dart_WeakReferenceSet reference_set,
|
| + Dart_WeakPersistentHandle key,
|
| + Dart_WeakPersistentHandle value);
|
|
|
| +/**
|
| + * Append the key object reference to the weak references set.
|
| + *
|
| + * \param reference_set A weak references set into which the key
|
| + * needs to be added.
|
| + * \param key An object reference. This references will be
|
| + * considered weak by the garbage collector.
|
| + *
|
| + * \return Success if the prologue weak persistent handle was created.
|
| + * Otherwise, returns an error.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_AppendKeyToWeakReferenceSet(
|
| + Dart_WeakReferenceSet reference_set,
|
| + Dart_WeakPersistentHandle key);
|
| +
|
| +/**
|
| + * Append the value object reference to the weak references set.
|
| + *
|
| + * \param reference_set A weak references set into which the key
|
| + * needs to be added.
|
| + * \param value An object reference. This references will be
|
| + * considered weak by the garbage collector.
|
| + *
|
| + * \return Success if the prologue weak persistent handle was created.
|
| + * Otherwise, returns an error.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_AppendValueToWeakReferenceSet(
|
| + Dart_WeakReferenceSet reference_set,
|
| + Dart_WeakPersistentHandle value);
|
| +
|
| +
|
| /*
|
| * ============================
|
| * Garbage Collection Callbacks
|
|
|