From: <svn...@op...> - 2009-04-12 11:51:37
|
Author: bricks Date: Sun Apr 12 13:51:33 2009 New Revision: 5584 URL: http://www.opensync.org/changeset/5584 Log: return a copy of plugin advancedoption paramater valenums refs #975 Modified: trunk/opensync/ipc/opensync_serializer.c trunk/opensync/plugin/opensync_plugin_advancedoptions.c trunk/opensync/plugin/opensync_plugin_config.c trunk/tests/ipc-tests/check_serializer.c trunk/tests/plugin-tests/check_plugin_config.c Modified: trunk/opensync/ipc/opensync_serializer.c ============================================================================== --- trunk/opensync/ipc/opensync_serializer.c Sun Apr 12 13:39:42 2009 (r5583) +++ trunk/opensync/ipc/opensync_serializer.c Sun Apr 12 13:51:33 2009 (r5584) @@ -736,8 +736,7 @@ unsigned int type = 0; const char *value = NULL; unsigned int num_valenum = 0; - unsigned int i; - OSyncList *valenum = NULL; + OSyncList *valenum = NULL, *v = NULL; osync_assert(message); osync_assert(param); @@ -775,10 +774,11 @@ num_valenum = osync_list_length(valenum); osync_message_write_uint(message, num_valenum); - for (i=0; i < num_valenum; i++) { - value = osync_list_nth_data(valenum, i); + for (v = valenum; v; v = v->next) { + value = v->data; osync_message_write_string(message, value); } + osync_list_free(valenum); return TRUE; } Modified: trunk/opensync/plugin/opensync_plugin_advancedoptions.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_advancedoptions.c Sun Apr 12 13:39:42 2009 (r5583) +++ trunk/opensync/plugin/opensync_plugin_advancedoptions.c Sun Apr 12 13:51:33 2009 (r5584) @@ -419,7 +419,7 @@ OSyncList *osync_plugin_advancedoption_param_get_valenums(OSyncPluginAdvancedOptionParameter *param) { osync_return_val_if_fail(param, NULL); - return param->valenum; + return osync_list_copy(param->valenum); } void osync_plugin_advancedoption_param_add_valenum(OSyncPluginAdvancedOptionParameter *param, const char *value) Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 13:39:42 2009 (r5583) +++ trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 13:51:33 2009 (r5584) @@ -1117,10 +1117,12 @@ xmlNewChild(node, NULL, BAD_CAST "Type", BAD_CAST osync_plugin_advancedoption_param_get_type_string(param)); /* ValEnum */ - for (v = osync_plugin_advancedoption_param_get_valenums(param); v; v = v->next) { + OSyncList *valenums = osync_plugin_advancedoption_param_get_valenums(param); + for (v = valenums; v; v = v->next) { char *valenum = v->data; xmlNewChild(node, NULL, BAD_CAST "ValEnum", BAD_CAST valenum); } + osync_list_free(valenums); /* Value */ if (!osync_plugin_advancedoption_param_get_value(param)) { Modified: trunk/tests/ipc-tests/check_serializer.c ============================================================================== --- trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 13:39:42 2009 (r5583) +++ trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 13:51:33 2009 (r5584) @@ -221,8 +221,13 @@ OSyncList *valenums1 = osync_plugin_advancedoption_param_get_valenums(param1); OSyncList *valenums2 = osync_plugin_advancedoption_param_get_valenums(param2); - if (!_compare_list(valenums1, valenums2, _compare_string)) + if (!_compare_list(valenums1, valenums2, _compare_string)) { + osync_list_free(valenums1); + osync_list_free(valenums2); return FALSE; + } + osync_list_free(valenums1); + osync_list_free(valenums2); const char *value1 = osync_plugin_advancedoption_param_get_value(param1); const char *value2 = osync_plugin_advancedoption_param_get_value(param2); Modified: trunk/tests/plugin-tests/check_plugin_config.c ============================================================================== --- trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 13:39:42 2009 (r5583) +++ trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 13:51:33 2009 (r5584) @@ -350,6 +350,7 @@ char *testbed = setup_testbed(NULL); OSyncError *error = NULL; + OSyncList *valenums = NULL; OSyncPluginConfig *config = osync_plugin_config_new(&error); fail_unless(error == NULL, NULL); fail_unless(config != NULL, NULL); @@ -370,11 +371,13 @@ osync_plugin_advancedoption_param_add_valenum(param, "foo"); /* Expected result: 2 - 1x foo, 1x bar */ - fail_unless(osync_list_length(osync_plugin_advancedoption_param_get_valenums(param)) == 2, NULL); + valenums = osync_plugin_advancedoption_param_get_valenums(param); + fail_unless(osync_list_length(valenums) == 2, NULL); /* Expected resut: 1 - 1x bar */ osync_plugin_advancedoption_param_remove_valenum(param, "bar"); - fail_unless(osync_list_length(osync_plugin_advancedoption_param_get_valenums(param)) == 1, NULL); + valenums = osync_plugin_advancedoption_param_get_valenums(param); + fail_unless(osync_list_length(valenums) == 1, NULL); /*****/ @@ -751,6 +754,7 @@ OSyncError *error = NULL; OSyncList *valenums = NULL; + OSyncList *paramvalenums = NULL; OSyncPluginConfig *config = osync_plugin_config_new(&error); OSyncPluginConfig *reloaded_config = osync_plugin_config_new(&error); fail_unless(error == NULL, NULL); @@ -788,7 +792,9 @@ osync_plugin_advancedoption_param_add_valenum(param, "BAR1"); osync_plugin_advancedoption_param_add_valenum(param, "BAR2"); - fail_unless(osync_list_length(osync_plugin_advancedoption_param_get_valenums(param)) == 2, NULL); + paramvalenums = osync_plugin_advancedoption_param_get_valenums(param); + fail_unless(osync_list_length(paramvalenums) == 2, NULL); + osync_list_free(paramvalenums); osync_plugin_advancedoption_add_parameter(option, param); osync_plugin_advancedoption_param_unref(param); @@ -939,6 +945,7 @@ g_free(value); } + osync_list_free(reloaded_advancedoption_param_valenums); fail_unless(!strcmp(osync_plugin_advancedoption_param_get_value(p->data), "BAR1")); |