- 19 Jul, 2012 1 commit
-
-
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.
Russell Belfer committed
-
- 14 Jun, 2012 1 commit
-
- 07 Jun, 2012 1 commit
-
-
Chris Young committed
-
- 26 Apr, 2012 1 commit
-
-
Russell Belfer committed
-
- 25 Apr, 2012 3 commits
-
-
This removes the custom paged allocator from revwalk and replaces it with a `git_pool`.
Russell Belfer committed -
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.
Russell Belfer committed -
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.
Russell Belfer committed
-