Eina promise data store is not clean on who own the data that is stored in. It is also not following the usual pattern in the rest of our API that take a string for key. I think we should change the function to :
eina_promise_data_set(promise, key, data, free_cb);
The data passed at creation time would only be accessible by the creator of the callback as this will be the only time you can actually set it.