eina: Introduce Eina_Slstr for short-lived strings
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 11 Jan 2017 06:34:15 +0000 (15:34 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 17 Jan 2017 05:20:55 +0000 (14:20 +0900)
commit4550b4cf832b256d6bca49a5e536c2327bbd5e8c
treefc8a78df24a6b3e108bd80609e13836c9fd106e1
parent4f5e64fdea88ba7362d77a6d42ea22cf13d3323f
eina: Introduce Eina_Slstr for short-lived strings

Built on top of the new 'postponed' free queue, the short-lived
strings API allows users to return new strings without caring
about freeing them. EFL main loop will do this automatically for
them you at a later point in time (at the end of an iteration).

The APIs provided will either duplicate (copy) or more generally
steal an existing string (char *, stringshare, tmpstr, strbuf),
taking ownership of it and controling its lifetime. Those strings
can then be safely returned by an API. From a user point of view,
those strings must be considered like simple const char *, ie.
no need to free() them and their validity is limited to the
local scope.

There is no function to remove such a string from the freeq.

The short lived strings API is not thread-safe: do not send a
short-lived object from one thread to another.

@feature
src/Makefile_Eina.am
src/lib/ecore/ecore_main.c
src/lib/eina/Eina.h
src/lib/eina/eina_freeq.h
src/lib/eina/eina_main.c
src/lib/eina/eina_slstr.c [new file with mode: 0644]
src/lib/eina/eina_slstr.h [new file with mode: 0644]
src/tests/eina/eina_suite.c
src/tests/eina/eina_suite.h
src/tests/eina/eina_test_slstr.c [new file with mode: 0644]