2011/6/15 Cedric BAIL <cedric.b...@free.fr>: > On Wed, Jun 15, 2011 at 5:53 PM, Mike Blumenkrantz <m...@zentific.com> wrote: >> On Wed, 15 Jun 2011 08:46:11 -0700 >> "Enlightenment SVN" <no-re...@enlightenment.org> wrote: >> >>> Log: >>> eina: +eina_hash_free_set. >>> >>> >>> Author: cedric >>> Date: 2011-06-15 08:46:10 -0700 (Wed, 15 Jun 2011) >>> New Revision: 60354 >>> Trac: http://trac.enlightenment.org/e/changeset/60354 >>> >>> Modified: >>> trunk/eina/ChangeLog trunk/eina/src/include/eina_hash.h >>> trunk/eina/src/lib/eina_hash.c >>> >>> Modified: trunk/eina/ChangeLog >>> =================================================================== >>> --- trunk/eina/ChangeLog 2011-06-15 14:57:38 UTC (rev 60353) >>> +++ trunk/eina/ChangeLog 2011-06-15 15:46:10 UTC (rev 60354) >>> @@ -102,7 +102,12 @@ >>> >>> * Fix eina_hash_set to handle data == NULL like eina_hash_del. >>> >>> -2011-06-3 Vincent Torri >>> +2011-06-03 Vincent Torri >>> >>> * Fix static linking with eina (iconv could potentially not be >>> passed to the linker) >>> + >>> +2011-06-15 Cedric Bail >>> + >>> + * Add eina_hash_free_set to change the free callback during the >>> + life of an Eina_Hash. >>> >>> Modified: trunk/eina/src/include/eina_hash.h >>> =================================================================== >>> --- trunk/eina/src/include/eina_hash.h 2011-06-15 14:57:38 UTC (rev >>> 60353) +++ trunk/eina/src/include/eina_hash.h 2011-06-15 15:46:10 UTC >>> (rev 60354) @@ -264,6 +264,15 @@ >>> int buckets_power_size) >>> EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3); >>> /** >>> + * @brief Redefine the callback that clean the data of a hash >>> + * >>> + * @param hash The given hash table >>> + * @param data_free_cb The function called on each value when the hash >>> + * table is freed. @c NULL can be passed as callback. >>> + */ >>> +EAPI void eina_hash_free_set(Eina_Hash *hash, Eina_Free_Cb data_free_cb) >>> EINA_ARG_NONNULL(1); + >>> +/** >>> * @brief Create a new hash table using the djb2 algorithm. >>> * >>> * @param data_free_cb The function called on each value when the hash >>> table >>> >>> Modified: trunk/eina/src/lib/eina_hash.c >>> =================================================================== >>> --- trunk/eina/src/lib/eina_hash.c 2011-06-15 14:57:38 UTC (rev 60353) >>> +++ trunk/eina/src/lib/eina_hash.c 2011-06-15 15:46:10 UTC (rev 60354) >>> @@ -713,6 +713,15 @@ >>> * >>> API * >>> *============================================================================*/ >>> +EAPI void >>> +eina_hash_free_set(Eina_Hash *hash, Eina_Free_Cb data_free_cb) >>> +{ >>> + EINA_MAGIC_CHECK_HASH(hash); >>> + EINA_SAFETY_ON_NULL_RETURN(hash); >>> + >>> + hash->data_free_cb = data_free_cb; >>> +} >>> + >>> EAPI Eina_Hash * >>> eina_hash_new(Eina_Key_Length key_length_cb, >>> Eina_Key_Cmp key_cmp_cb, >>> >>> >>> ------------------------------------------------------------------------------ >>> EditLive Enterprise is the world's most technically advanced content >>> authoring tool. Experience the power of Track Changes, Inline Image >>> Editing and ensure content is compliant with Accessibility Checking. >>> http://p.sf.net/sfu/ephox-dev2dev >>> _______________________________________________ >>> enlightenment-svn mailing list >>> enlightenment-...@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > >> I feel like this name is somewhat misleading... > > I didn't like it either, if you have a better proposal...
eina_hash_lets_set_the_callback_to_use_to_free_the_data_we_hold_when_the_hash_itself_is_freed() > -- > Cedric BAIL > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel