<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/src/strbuf.h, branch 2.8.0</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/'/>
<entry>
<title>Add new output-only formats and Define constants for the different plist formats</title>
<updated>2023-04-16T14:06:11+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-04-16T14:06:11+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=3aa5f6a3a663a5f2694ec6fc8cdf9744b616e15e'/>
<id>3aa5f6a3a663a5f2694ec6fc8cdf9744b616e15e</id>
<content type='text'>
This commit introduces constants for the different plist formats,
and adds 3 new human-readable output-only formats:
- PLIST_FORMAT_PRINT: the default human-readable format
- PLIST_FORMAT_LIMD: "libimobiledevice" format (used in ideviceinfo)
- PLIST_FORMAT_PLUTIL: plutil-style format

Also, a new set of write functions has been added:
- plist_write_to_string
- plist_write_to_stream
- plist_write_to_file

Plus a simple "dump" function:
- plist_print

See documentation for details.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit introduces constants for the different plist formats,
and adds 3 new human-readable output-only formats:
- PLIST_FORMAT_PRINT: the default human-readable format
- PLIST_FORMAT_LIMD: "libimobiledevice" format (used in ideviceinfo)
- PLIST_FORMAT_PLUTIL: plutil-style format

Also, a new set of write functions has been added:
- plist_write_to_string
- plist_write_to_stream
- plist_write_to_file

Plus a simple "dump" function:
- plist_print

See documentation for details.
</pre>
</div>
</content>
</entry>
<entry>
<title>xplist: Improve memory usage by estimating output buffer size</title>
<updated>2018-12-14T03:23:05+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2018-12-14T03:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=ac3be565c413f6964f0188e1c608c1bf8848db29'/>
<id>ac3be565c413f6964f0188e1c608c1bf8848db29</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bplist: Improve performance and memory usage when writing binary plist</title>
<updated>2018-12-10T00:40:56+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2018-12-10T00:40:56+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=71dd25e14616bd261c3b6c80ff990cd1078266f6'/>
<id>71dd25e14616bd261c3b6c80ff990cd1078266f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>xplist: Improve writing of large PLIST_DATA nodes by growing buffer in advance</title>
<updated>2017-02-15T14:14:12+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2017-02-15T14:14:12+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=8ad21e6b59e5e5a3104660f17ad2b0e9122edecf'/>
<id>8ad21e6b59e5e5a3104660f17ad2b0e9122edecf</id>
<content type='text'>
Instead of letting the buffer grow by just the amount of bytes currently
transformed to base64 - which is basically line by line - we now calculate
the size of the output blob in advance and grow the buffer accordingly.
This will reduce the amount of reallocs to just one, which is especially
important for large data blobs.
While this is a general improvement for all platforms, it is on platforms
like Windows where realloc() can be REALLY slow; converting a 20mb blob to
XML can easily take up to a minute (due to the several hundred thousand
calls to realloc()). With this commit, it will be fast again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of letting the buffer grow by just the amount of bytes currently
transformed to base64 - which is basically line by line - we now calculate
the size of the output blob in advance and grow the buffer accordingly.
This will reduce the amount of reallocs to just one, which is especially
important for large data blobs.
While this is a general improvement for all platforms, it is on platforms
like Windows where realloc() can be REALLY slow; converting a 20mb blob to
XML can easily take up to a minute (due to the several hundred thousand
calls to realloc()). With this commit, it will be fast again.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove libxml2 dependency in favor of custom XML parsing</title>
<updated>2016-10-22T02:39:47+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2016-10-22T02:39:47+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=392135c7db4d9cb4a14ff5935d7c4c6e21363847'/>
<id>392135c7db4d9cb4a14ff5935d7c4c6e21363847</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
