<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/pool.c, branch attr-export</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/'/>
<entry>
<title>Fix bug with merging diffs with null options</title>
<updated>2012-07-19T17:23:45+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-07-19T17:23:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=71d273583755c0a2b7f5d608f017f4586add51e4'/>
<id>71d273583755c0a2b7f5d608f017f4586add51e4</id>
<content type='text'>
A diff that is created with a NULL options parameter could result
in a NULL prefix string, but diff merge was unconditionally
strdup'ing it.  I added a test to replicate the issue and then a
new method that does the right thing with NULL values.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A diff that is created with a NULL options parameter could result
in a NULL prefix string, but diff merge was unconditionally
strdup'ing it.  I added a test to replicate the issue and then a
new method that does the right thing with NULL values.
</pre>
</div>
</content>
</entry>
<entry>
<title>Updates from comments on OS4 compatibility pull request http://github.com/libgit2/libgit2/pull/766</title>
<updated>2012-06-14T17:57:24+00:00</updated>
<author>
<name>Chris Young</name>
<email>chris@unsatisfactorysoftware.co.uk</email>
</author>
<published>2012-06-14T17:57:24+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=a8df98c6fb07b8ddff18a01d7f2f607d9493dd7c'/>
<id>a8df98c6fb07b8ddff18a01d7f2f607d9493dd7c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>random page size for os4</title>
<updated>2012-06-07T20:40:07+00:00</updated>
<author>
<name>Chris Young</name>
<email>chris@unsatisfactorysoftware.co.uk</email>
</author>
<published>2012-06-07T20:40:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=6b5db63c159ea1d2112fe8dc535b877da03a6848'/>
<id>6b5db63c159ea1d2112fe8dc535b877da03a6848</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Win32 warnings</title>
<updated>2012-04-26T20:04:54+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-04-26T20:04:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=821f6bc7404122260a46796422c011105a33638f'/>
<id>821f6bc7404122260a46796422c011105a33638f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert revwalk to use git_pool</title>
<updated>2012-04-25T18:14:34+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-04-18T17:57:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=da3b391c32b973d5c073951b6848eedd40434e5e'/>
<id>da3b391c32b973d5c073951b6848eedd40434e5e</id>
<content type='text'>
This removes the custom paged allocator from revwalk and
replaces it with a `git_pool`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the custom paged allocator from revwalk and
replaces it with a `git_pool`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert attrs and diffs to use string pools</title>
<updated>2012-04-25T17:42:37+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-04-17T22:12:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=19fa2bc111d50dc2bafb1393b87b5ba119615ae2'/>
<id>19fa2bc111d50dc2bafb1393b87b5ba119615ae2</id>
<content type='text'>
This converts the git attr related code (including ignores) and
the git diff related code (and implicitly the status code) to use
`git_pools` for storing strings.  This reduces the number of small
blocks allocated dramatically.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This converts the git attr related code (including ignores) and
the git diff related code (and implicitly the status code) to use
`git_pools` for storing strings.  This reduces the number of small
blocks allocated dramatically.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement git_pool paged memory allocator</title>
<updated>2012-04-25T17:42:37+00:00</updated>
<author>
<name>Russell Belfer</name>
<email>rb@github.com</email>
</author>
<published>2012-04-17T17:14:24+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2bc8fa0227d549006a9870620ca1f2e08a0c305e'/>
<id>2bc8fa0227d549006a9870620ca1f2e08a0c305e</id>
<content type='text'>
This adds a `git_pool` object that can do simple paged memory
allocation with free for the entire pool at once.  Using this,
you can replace many small allocations with large blocks that
can then cheaply be doled out in small pieces.  This is best
used when you plan to free the small blocks all at once - for
example, if they represent the parsed state from a file or data
stream that are either all kept or all discarded.

There are two real patterns of usage for `git_pools`: either
for "string" allocation, where the item size is a single byte
and you end up just packing the allocations in together, or for
"fixed size" allocation where you are allocating a large object
(e.g. a `git_oid`) and you generally just allocation single
objects that can be tightly packed.  Of course, you can use it
for other things, but those two cases are the easiest.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a `git_pool` object that can do simple paged memory
allocation with free for the entire pool at once.  Using this,
you can replace many small allocations with large blocks that
can then cheaply be doled out in small pieces.  This is best
used when you plan to free the small blocks all at once - for
example, if they represent the parsed state from a file or data
stream that are either all kept or all discarded.

There are two real patterns of usage for `git_pools`: either
for "string" allocation, where the item size is a single byte
and you end up just packing the allocations in together, or for
"fixed size" allocation where you are allocating a large object
(e.g. a `git_oid`) and you generally just allocation single
objects that can be tightly packed.  Of course, you can use it
for other things, but those two cases are the easiest.
</pre>
</div>
</content>
</entry>
</feed>
