Re: [PATCH/RFC v1 0/5] add strbuf_set operations
Duy, On Mon, Jun 09, 2014 at 05:39:12PM +0700, Duy Nguyen wrote: > On Mon, Jun 9, 2014 at 3:36 PM, Jeremiah Mahler wrote: > > Currently, the data in a strbuf is modified using add operations. To > > set the buffer to some data a reset must be performed before an add. > > > > strbuf_reset(buf); > > strbuf_add(buf, cb.buf.buf, cb.buf.len); > > > > And this is a common sequence of operations with 70 occurrences found in > > the current source code. This includes all the different variations > > (add, addf, addstr, addbuf, addch). > > > > FILES=`find ./ -name '*.c'` > > CNT=$(pcregrep -M "strbuf_reset.*\n.*strbuf_add" $FILES | wc -l) > > Hmm.. I wonder if git-grep could do this.. There's pcre support but I > never tried. > Not sure if git-grep does this. The multi-line (-M) support was the thing I needed. > > CNT=$(echo "$CNT / 2" | bc) > > echo $CNT > > 70 > > The change in this series looks nice. There's another pattern, save > strbuf length, then strbuf_setlen() at the beginning or the end of a > loop. But I think it's less often. A quick look did not see any obvious patterns for this. I think you are right, there may be fewer cases. > -- > Duy -- Jeremiah Mahler jmmah...@gmail.com http://github.com/jmahler -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH/RFC v1 0/5] add strbuf_set operations
On Mon, Jun 9, 2014 at 3:36 PM, Jeremiah Mahler wrote: > Currently, the data in a strbuf is modified using add operations. To > set the buffer to some data a reset must be performed before an add. > > strbuf_reset(buf); > strbuf_add(buf, cb.buf.buf, cb.buf.len); > > And this is a common sequence of operations with 70 occurrences found in > the current source code. This includes all the different variations > (add, addf, addstr, addbuf, addch). > > FILES=`find ./ -name '*.c'` > CNT=$(pcregrep -M "strbuf_reset.*\n.*strbuf_add" $FILES | wc -l) Hmm.. I wonder if git-grep could do this.. There's pcre support but I never tried. > CNT=$(echo "$CNT / 2" | bc) > echo $CNT > 70 The change in this series looks nice. There's another pattern, save strbuf length, then strbuf_setlen() at the beginning or the end of a loop. But I think it's less often. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH/RFC v1 0/5] add strbuf_set operations
Currently, the data in a strbuf is modified using add operations. To set the buffer to some data a reset must be performed before an add. strbuf_reset(buf); strbuf_add(buf, cb.buf.buf, cb.buf.len); And this is a common sequence of operations with 70 occurrences found in the current source code. This includes all the different variations (add, addf, addstr, addbuf, addch). FILES=`find ./ -name '*.c'` CNT=$(pcregrep -M "strbuf_reset.*\n.*strbuf_add" $FILES | wc -l) CNT=$(echo "$CNT / 2" | bc) echo $CNT 70 These patches add strbuf_set operations which allow this common sequence to be performed in one line instead of two. strbuf_set(buf, cb.buf.buf, cb.buf.len); Only the first few files have been converted in this preliminary patch set. Jeremiah Mahler (5): add strbuf_set operations add strbuf_set operations documentation sha1_name.c: cleanup using strbuf_set operations fast-import.c: cleanup using strbuf_set operations builtin/remote.c: cleanup using strbuf_set operations Documentation/technical/api-strbuf.txt | 18 builtin/remote.c | 51 -- fast-import.c | 19 - sha1_name.c| 15 -- strbuf.c | 21 ++ strbuf.h | 14 ++ 6 files changed, 81 insertions(+), 57 deletions(-) -- 2.0.0.573.ged771ce.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html