On Tue, Jun 15, 2021 at 10:55 PM Thomas Munro <thomas.mu...@gmail.com> wrote:
> On Mon, Mar 15, 2021 at 1:09 PM Thomas Munro <thomas.mu...@gmail.com> > wrote: > > On Sun, Mar 14, 2021 at 5:03 PM Zhihong Yu <z...@yugabyte.com> wrote: > > > + * Remove duplicates from an array. Return the new size. > > > + */ > > > +ST_SCOPE size_t > > > +ST_UNIQUE(ST_ELEMENT_TYPE *array, > > > > > > The array is supposed to be sorted, right ? > > > The comment should mention this. > > > > Good point, will update. Thanks! > > Rebased. Also fixed some formatting problems and updated > typedefs.list so they don't come back. > Hi, In 0001-Add-bsearch-and-unique-templates-to-sort_template.h.patch : - const ST_ELEMENT_TYPE * ST_SORT_PROTO_ARG); + const ST_ELEMENT_TYPE *ST_SORT_PROTO_ARG); It seems there is no real change in the line above. Better keep the original formation. * - ST_COMPARE_ARG_TYPE - type of extra argument * + * To say that the comparator returns a type other than int, use: + * + * - ST_COMPARE_TYPE - an integer type Since the ST_COMPARE_TYPE is meant to designate the type of the return value, maybe ST_COMPARE_RET_TYPE would be better name. It also goes with ST_COMPARE_ARG_TYPE preceding this. - ST_POINTER_TYPE *a = (ST_POINTER_TYPE *) data, - *pa, - *pb, - *pc, - *pd, - *pl, - *pm, - *pn; + ST_POINTER_TYPE *a = (ST_POINTER_TYPE *) data; + ST_POINTER_TYPE *pa; There doesn't seem to be material change for the above hunk. + while (left <= right) + { + size_t mid = (left + right) / 2; The computation for midpoint should be left + (right-left)/2. Cheers