glib-compile-resources: encode data as string

Some Testing revealed encoding resource data with string
escape codes to compile significantly quicker compared
to the same data encoded as an array with hexadecimal numbers.
See #1489
This commit is contained in:
Ninja-Koala 2018-08-22 21:05:17 +02:00
parent 2705fa7b55
commit 0d685b4946
No known key found for this signature in database
GPG Key ID: 2813175705683A1D

View File

@ -1087,20 +1087,16 @@ main (int argc, char **argv)
"# define SECTION\n" "# define SECTION\n"
"#endif\n" "#endif\n"
"\n" "\n"
"static const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;} %s_resource_data = { {\n", "static const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;} %s_resource_data = {\n \"",
c_name_no_underscores, data_size, c_name); c_name_no_underscores, data_size, c_name);
for (i = 0; i < data_size; i++) { for (i = 0; i < data_size; i++) {
if (i % 8 == 0) g_fprintf (file, "\\%3.3o", (int)data[i]);
g_fprintf (file, " "); if (i % 16 == 15)
g_fprintf (file, "0x%2.2x", (int)data[i]); g_fprintf (file, "\"\n \"");
if (i != data_size - 1)
g_fprintf (file, ", ");
if ((i % 8 == 7) || (i == data_size - 1))
g_fprintf (file, "\n");
} }
g_fprintf (file, "} };\n"); g_fprintf (file, "\" };\n");
g_fprintf (file, g_fprintf (file,
"\n" "\n"