Chromium Code Reviews| Index: runtime/include/dart_api.h |
| =================================================================== |
| --- runtime/include/dart_api.h (revision 35132) |
| +++ runtime/include/dart_api.h (working copy) |
| @@ -527,28 +527,106 @@ |
| 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 handle to the weak reference set builder if successful. |
|
Ivan Posva
2014/04/17 23:47:44
Please name this something else as this is really
siva
2014/04/21 18:04:14
s/handle/pointer/
On 2014/04/17 23:47:44, Ivan Po
|
| + * 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 handle 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); |
| + |
| +/** |
| + * Register the weak references set with the garbage collector. |
| + * During garbage collection references in the 'keys' array will be |
| + * considered weak. References in the 'values' array will be |
| + * considered weak unless any object reference in 'keys' is found to be |
| + * strong. |
| + * |
| + * \param set_builder The weak references set builder which was created |
| + * using Dart_NewWeakReferenceSetBuilder(). |
| + * \param reference_set The weak references set which needs to be |
| + * registered with the garbage collector. |
| + * |
| + * \return Success if the prologue weak persistent handle was created. |
| + * Otherwise, returns an error. |
| + */ |
| +DART_EXPORT Dart_Handle Dart_RegisterWeakReferenceSet( |
|
Ivan Posva
2014/04/17 23:47:44
As discussed this can be entirely removed. Just cr
siva
2014/04/21 18:04:14
Done.
|
| + Dart_WeakReferenceSetBuilder set_builder, |
| + Dart_WeakReferenceSet reference_set); |
| + |
| + |
| /* |
| * ============================ |
| * Garbage Collection Callbacks |