On Tue, Nov 09, 2021 at 07:27:12PM +0000, Richard W.M. Jones wrote:
> On Tue, Nov 09, 2021 at 08:53:28PM +0200, Nir Soffer wrote:
> > I would try to extract the code to compute the new capacity into a helper
> > function:
> > 
> >    if (next_capacity(v-cap, n, itemsize, &newcap))
> >        return -1;
> > 
> > This function can return early instead of jumping around or fail
> > if we cannot reserve n items. In the worst case this function will
> > only hide the overflow macros.
> 
> OK

While I think this is a good idea, when I tried to make it work the
function wasn't very elegant.  The problem is trying to make the
output "atomic", ie. only updating *newcap once.

What was worse, reading the disassembly Clang managed to produce
something that was less efficient, even though it inlined the function.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html

_______________________________________________
Libguestfs mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to