static void test_copy (void) { int i, j; #define ELEMS (sizeof (tc) / sizeof (tc[0])) CORBA_TypeCode tc[] = { TC_CORBA_octet, TC_CORBA_sequence_CORBA_octet, TC_CORBA_double, TC_CORBA_string, TC_CORBA_sequence_CORBA_string, TC_GIOP_TargetAddress }; gpointer data [ELEMS]; const char *test_string = "This is a sample string, for dupping"; fprintf (stderr, "Testing copy...\n"); for (i = 0; i < ELEMS; i++) { data [i] = ORBit_dynany_new_default (tc [i]); g_timer_reset (timer); for (j = 0; j < 1000; j++) { gpointer foo = ORBit_copy_value (data [i], tc [i]); CORBA_free (foo); } elapsed_time = g_timer_elapsed (timer, NULL); bogomark += elapsed_time; fprintf (stderr, " copy %20s : %g(ms)\n", tc[i]->repo_id == NULL ? "(null)" : tc[i]->repo_id, elapsed_time); } fprintf (stderr, "Testing strdup ...\n"); g_timer_reset (timer); for (i = 0; i < 10000; i++) { char *str = g_strdup (test_string); g_free (str); } elapsed_time = g_timer_elapsed (timer, NULL) / 10.0; bogomark += elapsed_time; fprintf (stderr, " g_strdup : %g(ns)\n", elapsed_time * 1000.0); g_timer_reset (timer); for (i = 0; i < 10000; i++) { char *str = CORBA_string_dup (test_string); CORBA_free (str); } elapsed_time = g_timer_elapsed (timer, NULL) / 10.0; bogomark += elapsed_time; fprintf (stderr, " CORBA_strdup : %g(ns)\n", elapsed_time * 1000.0); }
void spi_init_any_object (CORBA_any *any_details, Accessibility_Application app, Accessibility_Role role, CORBA_string name, CORBA_Object *o) { Accessibility_EventDetails *details = Accessibility_EventDetails__alloc(); any_details->_type = TC_Accessibility_EventDetails; any_details->_value = details; any_details->_release = TRUE; details->host_application = app; details->source_role = role; details->source_name = CORBA_string_dup (name); details->any_data._type = TC_CORBA_Object; details->any_data._value = ORBit_copy_value (o, TC_CORBA_Object); details->any_data._release = TRUE; }