<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/object.h, branch v2.17.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.17.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.17.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-03-14T19:01:06Z</updated>
<entry>
<title>Merge branch 'nd/object-allocation-comments'</title>
<updated>2018-03-14T19:01:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-03-14T19:01:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=99321e327b4df8d9d6724cf26bab7429edbdb718'/>
<id>urn:sha1:99321e327b4df8d9d6724cf26bab7429edbdb718</id>
<content type='text'>
Code doc update.

* nd/object-allocation-comments:
  object.h: realign object flag allocation comment
  object.h: update flag allocation comment
</content>
</entry>
<entry>
<title>object.h: realign object flag allocation comment</title>
<updated>2018-03-06T19:41:22Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-03-06T10:16:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3d1cf1e8e1552ae82178bb52953772495f5fd326'/>
<id>urn:sha1:3d1cf1e8e1552ae82178bb52953772495f5fd326</id>
<content type='text'>
Some new path names are too long and eat into the graph part. Move the
graph 9 columns to the right to avoid this.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>object.h: update flag allocation comment</title>
<updated>2018-03-06T19:41:21Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-03-06T10:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=95308d64ce43502507091ae5bbbdc41a918149ce'/>
<id>urn:sha1:95308d64ce43502507091ae5bbbdc41a918149ce</id>
<content type='text'>
Since the "flags" is shared, it's a good idea to keep track of who
uses what bit. When we need to use more flags in library code, we can
be sure it won't be re-used for another purpose by some caller.

While at there, fix the location of "5" (should be in a different
column than "4" two lines down)

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/lose-leak-pending' into maint</title>
<updated>2018-02-15T23:18:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-02-15T23:18:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e17cec27d18c730dae738684d2f5df1dbd54a804'/>
<id>urn:sha1:e17cec27d18c730dae738684d2f5df1dbd54a804</id>
<content type='text'>
API clean-up around revision traversal.

* rs/lose-leak-pending:
  commit: remove unused function clear_commit_marks_for_object_array()
  revision: remove the unused flag leak_pending
  checkout: avoid using the rev_info flag leak_pending
  bundle: avoid using the rev_info flag leak_pending
  bisect: avoid using the rev_info flag leak_pending
  object: add clear_commit_marks_all()
  ref-filter: use clear_commit_marks_many() in do_merge_filter()
  commit: use clear_commit_marks_many() in remove_redundant()
  commit: avoid allocation in clear_commit_marks_many()
</content>
</entry>
<entry>
<title>object: rename function 'typename' to 'type_name'</title>
<updated>2018-02-14T21:10:05Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2018-02-14T18:59:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=debca9d2fe784193dc2d9f98b5edac605ddfefbb'/>
<id>urn:sha1:debca9d2fe784193dc2d9f98b5edac605ddfefbb</id>
<content type='text'>
Rename C++ keyword in order to bring the codebase closer to being able
to be compiled with a C++ compiler.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/lose-leak-pending'</title>
<updated>2018-01-23T21:16:36Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-01-23T21:16:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0bbab7d2ab61b6aad217706e0879db561e1bdfae'/>
<id>urn:sha1:0bbab7d2ab61b6aad217706e0879db561e1bdfae</id>
<content type='text'>
API clean-up around revision traversal.

* rs/lose-leak-pending:
  commit: remove unused function clear_commit_marks_for_object_array()
  revision: remove the unused flag leak_pending
  checkout: avoid using the rev_info flag leak_pending
  bundle: avoid using the rev_info flag leak_pending
  bisect: avoid using the rev_info flag leak_pending
  object: add clear_commit_marks_all()
  ref-filter: use clear_commit_marks_many() in do_merge_filter()
  commit: use clear_commit_marks_many() in remove_redundant()
  commit: avoid allocation in clear_commit_marks_many()
</content>
</entry>
<entry>
<title>object: add clear_commit_marks_all()</title>
<updated>2017-12-28T21:50:05Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2017-12-25T17:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4ad315fc99d906364c9a5d75a319752cf4056ae5'/>
<id>urn:sha1:4ad315fc99d906364c9a5d75a319752cf4056ae5</id>
<content type='text'>
Add a function for clearing the commit marks of all in-core commit
objects.  It's similar to clear_object_flags(), but more precise, since
it leaves the other object types alone.  It still has to iterate through
them, though.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>list-objects: filter objects in traverse_commit_list</title>
<updated>2017-11-22T05:11:57Z</updated>
<author>
<name>Jeff Hostetler</name>
<email>jeffhost@microsoft.com</email>
</author>
<published>2017-11-21T20:58:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=25ec7bcac044057900a0f3c9a8d6ccbb41a066bc'/>
<id>urn:sha1:25ec7bcac044057900a0f3c9a8d6ccbb41a066bc</id>
<content type='text'>
Create traverse_commit_list_filtered() and add filtering
interface to allow certain objects to be omitted from the
traversal.

Update traverse_commit_list() to be a wrapper for the above
with a null filter to minimize the number of callers that
needed to be changed.

Object filtering will be used in a future commit by rev-list
and pack-objects for partial clone and fetch to omit unwanted
objects from the result.

traverse_bitmap_commit_list() does not work with filtering.
If a packfile bitmap is present, it will not be used.  It
should be possible to extend such support in the future (at
least to simple filters that do not require object pathnames),
but that is beyond the scope of this patch series.

Signed-off-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Reviewed-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>object_array: add and use `object_array_pop()`</title>
<updated>2017-09-24T01:06:04Z</updated>
<author>
<name>Martin Ågren</name>
<email>martin.agren@gmail.com</email>
</author>
<published>2017-09-22T23:34:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=719920393737b3934a168f35ab45e09104edeed8'/>
<id>urn:sha1:719920393737b3934a168f35ab45e09104edeed8</id>
<content type='text'>
In a couple of places, we pop objects off an object array `foo` by
decreasing `foo.nr`. We access `foo.nr` in many places, but most if not
all other times we do so read-only, e.g., as we iterate over the array.
But when we change `foo.nr` behind the array's back, it feels a bit
nasty and looks like it might leak memory.

Leaks happen if the popped element has an allocated `name` or `path`.
At the moment, that is not the case. Still, 1) the object array might
gain more fields that want to be freed, 2) a code path where we pop
might start using names or paths, 3) one of these code paths might be
copied to somewhere where we do, and 4) using a dedicated function for
popping is conceptually cleaner.

Introduce and use `object_array_pop()` instead. Release memory in the
new function. Document that popping an object leaves the associated
elements in limbo.

The converted places were identified by grepping for "\.nr\&gt;" and
looking for "--".

Make the new function return NULL on an empty array. This is consistent
with `pop_commit()` and allows the following:

	while ((o = object_array_pop(&amp;foo)) != NULL) {
		// do something
	}

But as noted above, we don't need to go out of our way to avoid reading
`foo.nr`. This is probably more readable:

	while (foo.nr) {
		... o = object_array_pop(&amp;foo);
		// do something
	}

The name of `object_array_pop()` does not quite align with
`add_object_array()`. That is unfortunate. On the other hand, it matches
`object_array_clear()`. Arguably it's `add_...` that is the odd one out,
since it reads like it's used to "add" an "object array". For that
reason, side with `object_array_clear()`.

Signed-off-by: Martin Ågren &lt;martin.agren@gmail.com&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>object: remove "used" field from struct object</title>
<updated>2017-07-20T21:54:08Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-07-20T00:21:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=092c55d0940420a705e0fa0708ec846babab6d3d'/>
<id>urn:sha1:092c55d0940420a705e0fa0708ec846babab6d3d</id>
<content type='text'>
The "used" field in struct object is only used by builtin/fsck. Remove
that field and modify builtin/fsck to use a flag instead.

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
