<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/src, branch v1.3</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/'/>
<entry>
<title>Endianness, alignment and type-punning fixes for binary plist support</title>
<updated>2010-04-18T13:17:58+00:00</updated>
<author>
<name>Julien BLACHE</name>
</author>
<published>2010-04-18T13:17:58+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=33b8a1281f6fdaa9602956ae20e629b58a2e31ae'/>
<id>33b8a1281f6fdaa9602956ae20e629b58a2e31ae</id>
<content type='text'>
 - endianness issues: on big endian machines, writing out only part
   of an integer was broken (get_needed_bytes(x) &lt; sizeof(x))
    -&gt; shift integer before memcpy() on big endian machines

 - alignment issues: unaligned reads when loading binary plist. Leads
   to slow runtime performance (kernel trapping and fixing things up),
   SIGBUS (kernel not helping us out)
    -&gt; introduce get_unaligned() and have the compiler generate the code
       needed for the unaligned access
   (note that there remains unaligned accesses that I haven't been able
    to track down - I've seen 2 of them with test #2)

 - type-punning issues: breaking strict aliasing rules can lead to
   unexpected results as the compiler takes full advantage of the aliasing
   while optimizing
    -&gt; introduce the plist_uint_ptr union instead of casting pointers

Tested on amd64, alpha and hppa.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - endianness issues: on big endian machines, writing out only part
   of an integer was broken (get_needed_bytes(x) &lt; sizeof(x))
    -&gt; shift integer before memcpy() on big endian machines

 - alignment issues: unaligned reads when loading binary plist. Leads
   to slow runtime performance (kernel trapping and fixing things up),
   SIGBUS (kernel not helping us out)
    -&gt; introduce get_unaligned() and have the compiler generate the code
       needed for the unaligned access
   (note that there remains unaligned accesses that I haven't been able
    to track down - I've seen 2 of them with test #2)

 - type-punning issues: breaking strict aliasing rules can lead to
   unexpected results as the compiler takes full advantage of the aliasing
   while optimizing
    -&gt; introduce the plist_uint_ptr union instead of casting pointers

Tested on amd64, alpha and hppa.
</pre>
</div>
</content>
</entry>
<entry>
<title>plist_to_xml: use POSIX locale to make sure '.' is used for floats</title>
<updated>2010-04-06T16:26:03+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2010-04-05T18:37:15+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=eb618a0c5c7a3893fc18a8f1e5d39854aa25c597'/>
<id>eb618a0c5c7a3893fc18a8f1e5d39854aa25c597</id>
<content type='text'>
In locales like German, a ',' is used as a decimal separator. When the
program calling plist_to_xml uses LC_NUMBER with something different
than a '.', parsing of the resulting XML document fails. This patch
fixes it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In locales like German, a ',' is used as a decimal separator. When the
program calling plist_to_xml uses LC_NUMBER with something different
than a '.', parsing of the resulting XML document fails. This patch
fixes it.
</pre>
</div>
</content>
</entry>
<entry>
<title>plist_to_xml: copy terminating 0-byte given from xmlDocDumpMemory</title>
<updated>2010-04-06T16:25:57+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2010-04-05T18:01:14+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=774ce25067303111b6ada712339b7d47ad0f87af'/>
<id>774ce25067303111b6ada712339b7d47ad0f87af</id>
<content type='text'>
This makes it possible to process the resulting char* directly as
a c-string without further copying.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes it possible to process the resulting char* directly as
a c-string without further copying.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix armel floating point endianess (LP: #541879)</title>
<updated>2010-03-24T16:47:02+00:00</updated>
<author>
<name>Alexander Sack</name>
</author>
<published>2010-03-24T16:47:02+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=e965b325b5adf4624f74b8d3366dddc2da9f81f3'/>
<id>e965b325b5adf4624f74b8d3366dddc2da9f81f3</id>
<content type='text'>
* on armel system floating poing data can have different endianess than
  rest of types; hence we fix arm endianess for defined(__VFP_FP__) to
  be big/native; this also applies for data parsing/writing
* date parsing didnt flip the endianess back for little endian systems
  when reading the values causing test failures; we fix this by ensuring
  float endianess is applied when parsing
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* on armel system floating poing data can have different endianess than
  rest of types; hence we fix arm endianess for defined(__VFP_FP__) to
  be big/native; this also applies for data parsing/writing
* date parsing didnt flip the endianess back for little endian systems
  when reading the values causing test failures; we fix this by ensuring
  float endianess is applied when parsing
</pre>
</div>
</content>
</entry>
<entry>
<title>Copy xml buffer to malloced buffer to prevent free / xmlFree mixing.</title>
<updated>2010-03-03T17:33:49+00:00</updated>
<author>
<name>Jonathan Beck</name>
</author>
<published>2010-03-03T17:33:49+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=9bccdb305845e31bcbc8c693e909cc5561f3dd03'/>
<id>9bccdb305845e31bcbc8c693e909cc5561f3dd03</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some warnings</title>
<updated>2010-01-21T20:19:41+00:00</updated>
<author>
<name>Jonathan Beck</name>
</author>
<published>2010-01-21T20:19:41+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=babec330acced3915332fa9a09b8252cfa99cf34'/>
<id>babec330acced3915332fa9a09b8252cfa99cf34</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make sure to convert predefined xml entities in xml output</title>
<updated>2010-01-14T17:36:26+00:00</updated>
<author>
<name>Martin Szulecki</name>
</author>
<published>2010-01-09T09:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=874942ec1600773622238ae28544908d292ef339'/>
<id>874942ec1600773622238ae28544908d292ef339</id>
<content type='text'>
For string nodes, a set of special characters must be converted to
predefined xml entities. This patch adds an entitiy test case for
this and makes libplist pass it fine by explicitly adding text nodes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For string nodes, a set of special characters must be converted to
predefined xml entities. This patch adds an entitiy test case for
this and makes libplist pass it fine by explicitly adding text nodes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove last includes of non-existing Utils.h</title>
<updated>2009-11-28T12:37:40+00:00</updated>
<author>
<name>Martin Szulecki</name>
</author>
<published>2009-11-26T19:53:30+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=834d7d7f27244adcf43ea4977cb9042222ed393e'/>
<id>834d7d7f27244adcf43ea4977cb9042222ed393e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>don't leak GNodes in plist_free</title>
<updated>2009-11-19T17:13:36+00:00</updated>
<author>
<name>Christophe Fergeau</name>
</author>
<published>2009-11-17T20:20:46+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=804032e99f576b5cf9b1246f2b83857468e9c71b'/>
<id>804032e99f576b5cf9b1246f2b83857468e9c71b</id>
<content type='text'>
Before recursing over its children, plist_free_node started by
detaching the current GNode from its parent which means that
calling g_node_destroy on the root of the tree was freeing only
the top-level GNode while what was intended was to free the whole
tree. Don't leak memory by not detaching children GNodes from their
parents so that g_node_destroy on the toplevel GNode can clean
everything.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before recursing over its children, plist_free_node started by
detaching the current GNode from its parent which means that
calling g_node_destroy on the root of the tree was freeing only
the top-level GNode while what was intended was to free the whole
tree. Don't leak memory by not detaching children GNodes from their
parents so that g_node_destroy on the toplevel GNode can clean
everything.
</pre>
</div>
</content>
</entry>
<entry>
<title>add missing break; in switch statement</title>
<updated>2009-11-19T16:59:45+00:00</updated>
<author>
<name>Christophe Fergeau</name>
</author>
<published>2009-11-17T19:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=d503698b5e2c709fcf581a4c19f64bf36b6a1bea'/>
<id>d503698b5e2c709fcf581a4c19f64bf36b6a1bea</id>
<content type='text'>
The 2nd missing break was harmless since it fell through the default: case
which has a break, but it makes things more robust if we were ever to add
new cases to this switch. The 1st missing break; was causing warnings in
valgrind since we ended up calling strdup on a memory zone not containing
a \0 character.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The 2nd missing break was harmless since it fell through the default: case
which has a break, but it makes things more robust if we were ever to add
new cases to this switch. The 1st missing break; was causing warnings in
valgrind since we ended up calling strdup on a memory zone not containing
a \0 character.
</pre>
</div>
</content>
</entry>
</feed>
