[Rpm-maint] [rpm-software-management/rpm] Add a version parsing and comparison API to librpmio (#1221)

Panu Matilainen notifications at github.com
Wed May 27 10:38:23 UTC 2020


This doesn't actually add any mallocs that were not there before for the busy case of rpmds comparisons: previously the strings were strdup()'ed in rpmdsCompareEVR() before passing to parseEVR(), now this is happens in rpmevr.c instead. The ver handle is all alloced as a single blob so there's no added cost (except for some error checking).

As for rpmds and string pool, all good questions that occurred to me too, but I don't have immediate answers. It'd seem attractive to run the rpmds versions through this just for enforced error checking, but then those are in the strpool, and the pool has its own non-trivial cost, and the private pool trick we use elsewhere seems way out of proportion for storing a couple of tiny strings. 

My excuse for ripping epoch promotion from Python but leaving the ruins in C is basically just that in C, removing would require soname bump, but Python has nothing of the sort. I can certainly put it back there if you prefer.

BTW, last fixup added support for python (e,v,r) tuples as a way of creating version objects, I initially pushed the python bindigs a little bit too hastily :)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1221#issuecomment-634576339
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20200527/8aec9f78/attachment.html>


More information about the Rpm-maint mailing list