forked from enlightenment/efl
2e9a9a9700
I was replicating this code in many places, it should go into eina itself. It's the right way to change strings that you don't know are stringshared before, since it will first add a reference and then remove, making it impossible to have references to go 0 and string being released before adding new references, fixing the following possible problem: x = eina_stringshare_add("x"); replace(x, x); then: incorrect_replace(const char **b, const char *a) { eina_stringshare_del(*b); /* reference gets to 0 */ eina_stringshare_add(a); /* BUG!!! */ *b = a; } SVN revision: 39903 |
||
---|---|---|
legacy |