Commit 5ef34e5f authored by Christian Persch's avatar Christian Persch

resources: compiler: Fix resources on big endian architectures

Resources are always little endian, so the gvdb is byteswapped. When looking
up the value, it would return a new byteswapped variant, making the data
returned from do_lookup() invalid once that variant is unref'd. Since
byteswapping doesn't matter for the "ay" data anyway, just use
gvdb_table_get_raw_value() instead and only byteswap the length and flag
parent cf619cff
......@@ -287,7 +287,7 @@ gboolean do_lookup (GResource *resource,
free_path[path_len-1] = 0;
value = gvdb_table_get_value (resource->table, path);
value = gvdb_table_get_raw_value (resource->table, path);
if (value == NULL)
......@@ -305,6 +305,9 @@ gboolean do_lookup (GResource *resource,
_size = GUINT32_FROM_LE (_size);
_flags = GUINT32_FROM_LE (_flags);
if (size)
*size = _size;
if (flags)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment