From: <svn...@op...> - 2009-04-12 11:39:54
|
Author: bricks Date: Sun Apr 12 13:39:42 2009 New Revision: 5583 URL: http://www.opensync.org/changeset/5583 Log: return a copy of plugin advancedoption 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:22:27 2009 (r5582) +++ trunk/opensync/ipc/opensync_serializer.c Sun Apr 12 13:39:42 2009 (r5583) @@ -797,11 +797,10 @@ unsigned int type = 0; const char *value = NULL; unsigned int num_parameters = 0; - OSyncList *parameters; + OSyncList *parameters = NULL, *p = NULL; const char *param = NULL; unsigned int num_valenum = 0; - unsigned int i; - OSyncList *valenum = NULL; + OSyncList *valenum = NULL, *v = NULL; osync_assert(message); osync_assert(opt); @@ -858,20 +857,22 @@ num_parameters = osync_list_length(parameters); osync_message_write_uint(message, num_parameters); - for (i=0; i < num_parameters; i++) { - param = osync_list_nth_data(parameters, i); + for ( p = parameters; p; p = p->next) { + param = p->data; osync_message_write_string(message, param); } - + osync_list_free(parameters); + valenum = osync_plugin_advancedoption_get_valenums(opt); 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:22:27 2009 (r5582) +++ trunk/opensync/plugin/opensync_plugin_advancedoptions.c Sun Apr 12 13:39:42 2009 (r5583) @@ -271,7 +271,7 @@ OSyncList *osync_plugin_advancedoption_get_valenums(OSyncPluginAdvancedOption *option) { osync_assert(option); - return option->valenum; + return osync_list_copy(option->valenum); } void osync_plugin_advancedoption_add_valenum(OSyncPluginAdvancedOption *option, const char *value) Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 13:22:27 2009 (r5582) +++ trunk/opensync/plugin/opensync_plugin_config.c Sun Apr 12 13:39:42 2009 (r5583) @@ -1205,11 +1205,13 @@ xmlNewChild(node, NULL, BAD_CAST "Type", BAD_CAST osync_plugin_advancedoption_get_type_string(option)); /* ValEnum */ - for (v = osync_plugin_advancedoption_get_valenums(option); v; v = v->next) { + OSyncList *valenums = osync_plugin_advancedoption_get_valenums(option); + 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_get_value(option)) { osync_error_set(error, OSYNC_ERROR_MISCONFIGURATION, "Value for advanced option not set."); Modified: trunk/tests/ipc-tests/check_serializer.c ============================================================================== --- trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 13:22:27 2009 (r5582) +++ trunk/tests/ipc-tests/check_serializer.c Sun Apr 12 13:39:42 2009 (r5583) @@ -272,9 +272,14 @@ OSyncList *valenums1 = osync_plugin_advancedoption_get_valenums(opt1); OSyncList *valenums2 = osync_plugin_advancedoption_get_valenums(opt2); - 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_get_value(opt1); const char *value2 = osync_plugin_advancedoption_get_value(opt2); Modified: trunk/tests/plugin-tests/check_plugin_config.c ============================================================================== --- trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 13:22:27 2009 (r5582) +++ trunk/tests/plugin-tests/check_plugin_config.c Sun Apr 12 13:39:42 2009 (r5583) @@ -200,6 +200,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); @@ -229,11 +230,13 @@ osync_plugin_advancedoption_add_valenum(option, "foo"); /* Expected result: 2 - 1x foo, 1x bar */ - fail_unless(osync_list_length(osync_plugin_advancedoption_get_valenums(option)) == 2, NULL); + valenums = osync_plugin_advancedoption_get_valenums(option); + fail_unless(osync_list_length(valenums) == 2, NULL); /* Expected resut: 1 - 1x bar */ osync_plugin_advancedoption_remove_valenum(option, "bar"); - fail_unless(osync_list_length(osync_plugin_advancedoption_get_valenums(option)) == 1, NULL); + valenums = osync_plugin_advancedoption_get_valenums(option); + fail_unless(osync_list_length(valenums) == 1, NULL); /*****/ @@ -747,6 +750,7 @@ char *testbed = setup_testbed(NULL); OSyncError *error = NULL; + OSyncList *valenums = NULL; OSyncPluginConfig *config = osync_plugin_config_new(&error); OSyncPluginConfig *reloaded_config = osync_plugin_config_new(&error); fail_unless(error == NULL, NULL); @@ -767,8 +771,10 @@ osync_plugin_advancedoption_add_valenum(option, "FOOBAR1"); osync_plugin_advancedoption_add_valenum(option, "FOOBAR2"); - fail_unless(osync_list_length(osync_plugin_advancedoption_get_valenums(option)) == 2, NULL); - + valenums = osync_plugin_advancedoption_get_valenums(option); + fail_unless(osync_list_length(valenums) == 2, NULL); + osync_list_free(valenums); + /* Advanced Parameter */ OSyncPluginAdvancedOptionParameter *param = osync_plugin_advancedoption_param_new(&error); fail_unless(error == NULL, NULL); @@ -916,9 +922,9 @@ fail_unless(!strcmp(v->data, value), NULL); g_free(value); } - fail_unless(!strcmp(osync_plugin_advancedoption_get_value(r->data), "FOOBAR1")); - + osync_list_free(reloaded_advancedoption_valenums); + reloaded_advancedoption_parameters = osync_plugin_advancedoption_get_parameters(r->data); for (j = 1, p = reloaded_advancedoption_parameters; p; p = p->next, j++) { char *value = g_strdup_printf("bar%i", j); |