diff options
Diffstat (limited to 'test/c_glib')
-rw-r--r-- | test/c_glib/src/thrift_test_handler.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/test/c_glib/src/thrift_test_handler.c b/test/c_glib/src/thrift_test_handler.c index 8312ad9b8..1d8bcb25a 100644 --- a/test/c_glib/src/thrift_test_handler.c +++ b/test/c_glib/src/thrift_test_handler.c @@ -520,11 +520,15 @@ thrift_test_handler_test_insanity (TTestThriftTestIf *iface, GINT_TO_POINTER (T_TEST_NUMBERZ_THREE), (gpointer)argument); - /* Increment argument's ref count since first_map now holds two - references to it and would otherwise attempt to deallocate it - twice during destruction. We do this instead of creating a copy - of argument in order to mimic the C++ implementation (and since, - frankly, the world needs less argument, not more). */ + /* Increment argument's ref count by two because first_map now holds + two references to it and the caller is not aware we have made any + additional references to argument. (That is, caller owns argument + and will unref it explicitly in addition to unref-ing *_return.) + + We do this instead of creating a copy of argument in order to mimic + the C++ implementation (and since, frankly, the world needs less + argument, not more). */ + g_object_ref ((gpointer)argument); g_object_ref ((gpointer)argument); looney = g_object_new (T_TEST_TYPE_INSANITY, NULL); |