Revert "glib-genmarshal: Treat all parameters the same"

This reverts commit 8e362161d9.

There is a fundamental difference between g_value_peek_pointer() and
g_value_get_pointer(), and it's not just complexity: the latter checks
if the GValue holds a pointer type, whereas the former doesn't.

https://bugzilla.gnome.org/show_bug.cgi?id=755922
This commit is contained in:
Emmanuele Bassi 2015-10-01 11:54:11 +01:00
parent ad7250ab53
commit cc818f5fe4

View File

@ -441,9 +441,9 @@ generate_marshal (const gchar *signame,
g_fprintf (fout, "\n");
g_fprintf (fout, " if (G_CCLOSURE_SWAP_DATA (closure))\n {\n");
g_fprintf (fout, " data1 = closure->data;\n");
g_fprintf (fout, " data2 = g_marshal_value_peek_pointer (param_values + 0);\n");
g_fprintf (fout, " data2 = g_value_peek_pointer (param_values + 0);\n");
g_fprintf (fout, " }\n else\n {\n");
g_fprintf (fout, " data1 = g_marshal_value_peek_pointer (param_values + 0);\n");
g_fprintf (fout, " data1 = g_value_peek_pointer (param_values + 0);\n");
g_fprintf (fout, " data2 = closure->data;\n");
g_fprintf (fout, " }\n");
g_fprintf (fout, " callback = (GMarshalFunc_%s) (marshal_data ? marshal_data : cc->callback);\n", signame);