Rémy Oudompheng wrote: > Hello, > > While doing experiments, I discovered that alpm_add_pkg() seemingly > stole the ownership of a pmpkg_t previously allocated by > alpm_pkg_load(). I am a bit confused here. I think the documentation > can definitely be improved here: can someone confirm the following > statements? > > * a pmpkg_t* returned by alpm_pkg_load() must be freed by the caller > unless otherwise specified > * if alpm_add_pkg() is called on that package, then the caller MUST > NOT free the pmpkg_t afterwards. > > Am I right? Are there any other functions with similar behaviour to > alpm_add_pkg() ? >
I cannot look now, but you might be right, and this definitely needs careful reviewing. Can you open a ticket ? I wonder if add_pkg should handle pmpkg from files differently and duplicate these before adding them to the transaction. This would be less confusing to the frontend, which would always need to free a pmpkg coming from pkg_load.
