threads / patch / 42561

patchrefs: mark the file-local vtable symbols as static

Subject: [PATCH] refs: mark the file-local vtable symbols as static

## tl;dr

3 messages between Jun 8, 2016 and Jun 16, 2016. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Ramsay Jones· Jun 8, 2016, 14:48 UTC · lore
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
Hi Michael, Junio,

I would normally ask you to squash this into the relevant patch when you next re-roll your 'mh/ref-iterators' branch, but this has already been merged into next. (I normally have a bit more time ... sorry!).

Perhaps, after the release, when the next branch is re-wound/re-built, this could be squashed into your branch then.

Anyway, after applying this patch, the following symbols are still 'public but unused':

	> refs/files-backend.o	- files_reflog_iterator_begin
	> refs/iterator.o	- is_empty_ref_iterator
	> refs/iterator.o	- merge_ref_iterator_begin

These all look (potentially) useful for the implementation of additional 'ref-iter' types and look to be part of the _internal_ iterator API - so they should not be marked static. Can you just confirm my interpretation.

Thanks.

ATB, Ramsay Jones

 refs/files-backend.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Show changes to refs/files-backend.c +3 −3
diff --git a/refs/files-backend.c b/refs/files-backend.c
index a006a65..6213891 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -711,7 +711,7 @@ static int cache_ref_iterator_abort(struct ref_iterator *ref_iterator)
 	return ITER_DONE;
 }
 
-struct ref_iterator_vtable cache_ref_iterator_vtable = {
+static struct ref_iterator_vtable cache_ref_iterator_vtable = {
 	cache_ref_iterator_advance,
 	cache_ref_iterator_peel,
 	cache_ref_iterator_abort
@@ -1933,7 +1933,7 @@ static int files_ref_iterator_abort(struct ref_iterator *ref_iterator)
 	return ok;
 }
 
-struct ref_iterator_vtable files_ref_iterator_vtable = {
+static struct ref_iterator_vtable files_ref_iterator_vtable = {
 	files_ref_iterator_advance,
 	files_ref_iterator_peel,
 	files_ref_iterator_abort
@@ -3354,7 +3354,7 @@ static int files_reflog_iterator_abort(struct ref_iterator *ref_iterator)
 	return ok;
 }
 
-struct ref_iterator_vtable files_reflog_iterator_vtable = {
+static struct ref_iterator_vtable files_reflog_iterator_vtable = {
 	files_reflog_iterator_advance,
 	files_reflog_iterator_peel,
 	files_reflog_iterator_abort
-- 
2.8.0
Junio C Hamano· Jun 8, 2016, 18:55 UTC · re: Ramsay Jones · lore

Re: [PATCH] refs: mark the file-local vtable symbols as static

Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
Show 11 quoted lines
> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
> ---
>
> Hi Michael, Junio,
>
> I would normally ask you to squash this into the relevant patch when
> you next re-roll your 'mh/ref-iterators' branch, but this has already
> been merged into next. (I normally have a bit more time ... sorry!).
>
> Perhaps, after the release, when the next branch is re-wound/re-built,
> this could be squashed into your branch then.
Yup, sounds like a plan.
Show 12 quoted lines
>
> Anyway, after applying this patch, the following symbols are still
> 'public but unused':
>
> 	> refs/files-backend.o	- files_reflog_iterator_begin
> 	> refs/iterator.o	- is_empty_ref_iterator
> 	> refs/iterator.o	- merge_ref_iterator_begin
>
> These all look (potentially) useful for the implementation of
> additional 'ref-iter' types and look to be part of the _internal_
> iterator API - so they should not be marked static. Can you just
> confirm my interpretation.
I am not Michael, but FWIW I think that is sensible.
Michael Haggerty· Jun 9, 2016, 12:40 UTC · re: Junio C Hamano · lore

Re: [PATCH] refs: mark the file-local vtable symbols as static

On 06/08/2016 08:55 PM, Junio C Hamano wrote:
Show 30 quoted lines
> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> 
>> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
>> ---
>>
>> Hi Michael, Junio,
>>
>> I would normally ask you to squash this into the relevant patch when
>> you next re-roll your 'mh/ref-iterators' branch, but this has already
>> been merged into next. (I normally have a bit more time ... sorry!).
>>
>> Perhaps, after the release, when the next branch is re-wound/re-built,
>> this could be squashed into your branch then.
> 
> Yup, sounds like a plan.
> 
>>
>> Anyway, after applying this patch, the following symbols are still
>> 'public but unused':
>>
>> 	> refs/files-backend.o	- files_reflog_iterator_begin
>> 	> refs/iterator.o	- is_empty_ref_iterator
>> 	> refs/iterator.o	- merge_ref_iterator_begin
>>
>> These all look (potentially) useful for the implementation of
>> additional 'ref-iter' types and look to be part of the _internal_
>> iterator API - so they should not be marked static. Can you just
>> confirm my interpretation.
> 
> I am not Michael, but FWIW I think that is sensible.
I *am* Michael, and I think your changes look good. Thanks for your review.

I've incorporated your changes with some other changes in a re-roll [1] in case Junio wants to use it in that form. Please note that two of the hunks that you are suggesting apply to "refs: introduce an iterator interface" and the third to "for_each_reflog(): reimplement using iterators".

Michael
[1] http://article.gmane.org/gmane.comp.version-control.git/296883

← back to recent threads