From: marcm Date: Fri, 5 Oct 2001 15:17:39 +0000 (+0000) Subject: Fixed string handling for NULL strings in libspi. X-Git-Tag: AT_SPI2_ATK_2_12_0~1560 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=commitdiff_plain;h=d809d79f978308b8e2039e7958e6b5773950ed69 Fixed string handling for NULL strings in libspi. Added spi_freeString to free strings returned by C bindings. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@69 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- diff --git a/ChangeLog b/ChangeLog index 3b59f81..5416f33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ -<2001-09-30 Bill Haneman +<2001-10-05 Marc Mulcahy + Fixed string handling for NULL strings in libspi. + Added spi_freeString to free strings returned by C bindings. + + <2001-09-30 Bill Haneman * libspi/keystrokelistener.h: * libspi/keystrokelistener.c: diff --git a/cspi/spi-util.c b/cspi/spi-util.c index e9d736b..6cccb40 100644 --- a/cspi/spi-util.c +++ b/cspi/spi-util.c @@ -1,17 +1,6 @@ -#include -#include "spi-util.h" - - -char * -string_from_corba_string (CORBA_char *string) +void +spi_freeString (char *s) { - char *newstring; - int length; - - length = strlen (string); - newstring = (char *) malloc (length+1); - strcpy (newstring, string); - CORBA_free (string); - return newstring; + CORBA_free (s); } diff --git a/cspi/spi.h b/cspi/spi.h index 414ebaf..4570e49 100644 --- a/cspi/spi.h +++ b/cspi/spi.h @@ -1241,4 +1241,7 @@ boolean AccessibleValue_setCurrentValue (AccessibleValue *value, float newValue); +void +spi_freeString (char *s); + #endif diff --git a/cspi/spi_accessible.c b/cspi/spi_accessible.c index e4253f5..6099f44 100644 --- a/cspi/spi_accessible.c +++ b/cspi/spi_accessible.c @@ -128,8 +128,8 @@ Accessible_unref (Accessible *obj) char * Accessible_getName (Accessible *obj) { - return string_from_corba_string ( - Accessibility_Accessible__get_name (*obj, &ev)); + return (char *) + Accessibility_Accessible__get_name (*obj, &ev); } /** @@ -144,8 +144,8 @@ Accessible_getName (Accessible *obj) char * Accessible_getDescription (Accessible *obj) { - return string_from_corba_string ( - Accessibility_Accessible__get_description (*obj, &ev)); + return (char *) + Accessibility_Accessible__get_description (*obj, &ev); } /** diff --git a/cspi/spi_action.c b/cspi/spi_action.c index d1e842e..0326028 100644 --- a/cspi/spi_action.c +++ b/cspi/spi_action.c @@ -1,5 +1,3 @@ -#include "spi-util.h" - int AccessibleAction_ref ( AccessibleAction *obj) @@ -41,22 +39,22 @@ char * AccessibleAction_getDescription (AccessibleAction *obj, long index) { - return string_from_corba_string ( - Accessibility_Action_getDescription (*obj, - (CORBA_long) index, - &ev)); + return (char *) + Accessibility_Action_getDescription (*obj, + (CORBA_long) index, + &ev); } char * AccessibleAction_getKeyBinding (AccessibleAction *obj, - long index) + long index) { - return string_from_corba_string ( - Accessibility_Action_getKeyBinding (*obj, - (CORBA_long) index, - &ev)); + return (char *) + Accessibility_Action_getKeyBinding (*obj, + (CORBA_long) index, + &ev); } @@ -65,10 +63,10 @@ char * AccessibleAction_getName (AccessibleAction *obj, long index) { - return string_from_corba_string ( + return (char *) Accessibility_Action_getName (*obj, (CORBA_long) index, - &ev)); + &ev); } diff --git a/cspi/spi_hyperlink.c b/cspi/spi_hyperlink.c index d655b6c..7df6612 100644 --- a/cspi/spi_hyperlink.c +++ b/cspi/spi_hyperlink.c @@ -1,5 +1,3 @@ -#include "spi-util.h" - int AccessibleHyperlink_ref (AccessibleHyperlink *obj) { @@ -31,9 +29,9 @@ char * AccessibleHyperlink_getURI (AccessibleHyperlink *obj, long i) { - return string_from_corba_string ( - Accessibility_Hyperlink_getURI (*obj, - (CORBA_long) i, &ev)); + return (char *) + Accessibility_Hyperlink_getURI (*obj, + (CORBA_long) i, &ev); } diff --git a/cspi/spi_image.c b/cspi/spi_image.c index a4ede04..3076fbb 100644 --- a/cspi/spi_image.c +++ b/cspi/spi_image.c @@ -1,6 +1,3 @@ -#include "spi-util.h" - - int AccessibleImage_ref (AccessibleImage *obj) { @@ -22,9 +19,9 @@ AccessibleImage_unref (AccessibleImage *obj) char * AccessibleImage_getImageDescription (AccessibleImage *obj) { - return string_from_corba_string ( - Accessibility_Image__get_imageDescription (*obj, &ev)); -} + return (char *) + Accessibility_Image__get_imageDescription (*obj, &ev); + } diff --git a/cspi/spi_table.c b/cspi/spi_table.c index f85ba21..cf96701 100644 --- a/cspi/spi_table.c +++ b/cspi/spi_table.c @@ -1,5 +1,3 @@ -#include "spi-util.h" - int AccessibleTable_ref (AccessibleTable *obj) { @@ -102,9 +100,9 @@ char * AccessibleTable_getRowDescription (AccessibleTable *obj, long row) { - return string_from_corba_string ( - Accessibility_Table_getRowDescription (*obj, - (CORBA_long) row, &ev)); + return (char *) + Accessibility_Table_getRowDescription (*obj, + (CORBA_long) row, &ev); } @@ -113,9 +111,9 @@ char * AccessibleTable_getColumnDescription (AccessibleTable *obj, long column) { - return string_from_corba_string ( - Accessibility_Table_getColumnDescription (*obj, - (CORBA_long) column, &ev)); + return (char *) + Accessibility_Table_getColumnDescription (*obj, + (CORBA_long) column, &ev); } diff --git a/cspi/spi_text.c b/cspi/spi_text.c index 45950ad..000a201 100644 --- a/cspi/spi_text.c +++ b/cspi/spi_text.c @@ -1,6 +1,3 @@ -#include "spi-util.h" - - int AccessibleText_ref (AccessibleText *obj) { @@ -33,13 +30,14 @@ AccessibleText_getText (AccessibleText *obj, long startOffset, long endOffset) { - return string_from_corba_string ( - Accessibility_Text_getText (*obj, - (CORBA_long) startOffset, (CORBA_long) endOffset, &ev)); + return (char *) + Accessibility_Text_getText (*obj, + (CORBA_long) startOffset, (CORBA_long) endOffset, &ev); } + long AccessibleText_getCaretOffset (AccessibleText *obj) { @@ -55,11 +53,11 @@ AccessibleText_getAttributes (AccessibleText *obj, long *startOffset, long *endOffset) { - return string_from_corba_string ( - Accessibility_Text_getAttributes (*obj, - (CORBA_long) offset, - (CORBA_long *) startOffset, - (CORBA_long *) endOffset, &ev)); + return (char *) + Accessibility_Text_getAttributes (*obj, + (CORBA_long) offset, + (CORBA_long *) startOffset, + (CORBA_long *) endOffset, &ev); } @@ -81,11 +79,11 @@ AccessibleText_getTextBeforeOffset (AccessibleText *obj, TEXT_BOUNDARY_TYPE type, long *startOffset, long *endOffset) { - return string_from_corba_string ( - Accessibility_Text_getTextBeforeOffset (*obj, - (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, - (CORBA_long *) startOffset, (CORBA_long *) endOffset, - &ev)); + return (char *) + Accessibility_Text_getTextBeforeOffset (*obj, + (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, + (CORBA_long *) startOffset, (CORBA_long *) endOffset, + &ev); } @@ -96,11 +94,11 @@ AccessibleText_getTextAtOffset (AccessibleText *obj, TEXT_BOUNDARY_TYPE type, long *startOffset, long *endOffset) { - return string_from_corba_string ( - Accessibility_Text_getTextAtOffset (*obj, - (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, - (CORBA_long *) startOffset, (CORBA_long *) endOffset, - &ev)); + return (char *) + Accessibility_Text_getTextAtOffset (*obj, + (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, + (CORBA_long *) startOffset, (CORBA_long *) endOffset, + &ev); } @@ -111,11 +109,11 @@ AccessibleText_getTextAfterOffset (AccessibleText *obj, TEXT_BOUNDARY_TYPE type, long *startOffset, long *endOffset) { - return string_from_corba_string ( - Accessibility_Text_getTextAfterOffset (*obj, - (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, - (CORBA_long *) startOffset, (CORBA_long *) endOffset, - &ev)); + return (char *) + Accessibility_Text_getTextAfterOffset (*obj, + (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type, + (CORBA_long *) startOffset, (CORBA_long *) endOffset, + &ev); } diff --git a/libspi/action.c b/libspi/action.c index 13247e1..0027dfb 100644 --- a/libspi/action.c +++ b/libspi/action.c @@ -172,7 +172,13 @@ impl_getDescription (PortableServer_Servant servant, CORBA_Environment * ev) { Action *action = ACTION (bonobo_object_from_servant(servant)); - return CORBA_string_dup (atk_action_get_description (ATK_ACTION(action->atko), (gint) index)); + CORBA_char *rv; + + rv = atk_action_get_description (ATK_ACTION(action->atko), (gint) index); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } @@ -182,7 +188,13 @@ impl_getName (PortableServer_Servant servant, CORBA_Environment * ev) { Action *action = ACTION (bonobo_object_from_servant(servant)); - return CORBA_string_dup (atk_action_get_name (ATK_ACTION(action->atko), (gint) index)); + CORBA_char *rv; + + rv = atk_action_get_name (ATK_ACTION(action->atko), (gint) index); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } static CORBA_string @@ -191,5 +203,11 @@ impl_getKeyBinding (PortableServer_Servant servant, CORBA_Environment * ev) { Action *action = ACTION (bonobo_object_from_servant(servant)); - return CORBA_string_dup (atk_action_get_keybinding (ATK_ACTION(action->atko), (gint) index)); + CORBA_char *rv; + + rv = atk_action_get_keybinding (ATK_ACTION(action->atko), (gint) index); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } diff --git a/libspi/hyperlink.c b/libspi/hyperlink.c index 2ff83ec..5d0c72f 100644 --- a/libspi/hyperlink.c +++ b/libspi/hyperlink.c @@ -190,8 +190,13 @@ impl_getURI (PortableServer_Servant _servant, gchar *uri; CORBA_char *rv; uri = atk_hyperlink_get_uri (ATK_HYPERLINK(link->atko), (gint) i); - rv = CORBA_string_dup (uri); - g_free (uri); + if (uri) + { + rv = CORBA_string_dup (uri); + g_free (uri); + } + else + rv = CORBA_string_dup (""); return rv; } diff --git a/libspi/image.c b/libspi/image.c index a637ad1..f1c9893 100644 --- a/libspi/image.c +++ b/libspi/image.c @@ -175,8 +175,13 @@ impl__get_imageDescription (PortableServer_Servant _servant, CORBA_Environment * ev) { Image *image = IMAGE (bonobo_object_from_servant(_servant)); - return CORBA_string_dup ( - atk_image_get_image_description (ATK_IMAGE(image->atko))); + CORBA_char *rv; + + rv = atk_image_get_image_description (ATK_IMAGE(image->atko)); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } diff --git a/libspi/table.c b/libspi/table.c index 886ef60..593522e 100644 --- a/libspi/table.c +++ b/libspi/table.c @@ -233,8 +233,7 @@ impl__get_caption (PortableServer_Servant _servant, AtkObject *atk_object; Accessibility_Accessible rv; - atk_object = g_object_new (ATK_TYPE_OBJECT, NULL); - atk_object_set_name (atk_object, atk_table_get_caption (ATK_TABLE(table-> atko))); + atk_object = atk_table_get_caption (ATK_TABLE(table-> atko)); rv = bonobo_object_corba_objref (BONOBO_OBJECT(accessible_new(atk_object))); return rv; } @@ -339,8 +338,13 @@ impl_getRowDescription (PortableServer_Servant _servant, CORBA_Environment * ev) { Table *table = TABLE (bonobo_object_from_servant (_servant)); - return CORBA_string_dup ( - atk_table_get_row_description (ATK_TABLE(table->atko), (gint) row)); + CORBA_char *rv; + + rv = atk_table_get_row_description (ATK_TABLE(table->atko), (gint) row); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } @@ -351,8 +355,13 @@ impl_getColumnDescription (PortableServer_Servant _servant, CORBA_Environment * ev) { Table *table = TABLE (bonobo_object_from_servant (_servant)); - return CORBA_string_dup ( - atk_table_get_column_description (ATK_TABLE(table->atko), (gint) column)); + CORBA_char *rv; + + rv = atk_table_get_column_description (ATK_TABLE(table->atko), (gint) column); + if (rv) + return CORBA_string_dup (rv); + else + return CORBA_string_dup (""); } diff --git a/libspi/text.c b/libspi/text.c index 872f3d0..afb4a7e 100644 --- a/libspi/text.c +++ b/libspi/text.c @@ -241,8 +241,13 @@ impl_getText (PortableServer_Servant _servant, txt = atk_text_get_text (ATK_TEXT(text->atko), (gint) startOffset, (gint) endOffset); - rv = CORBA_string_dup (txt); - g_free (txt); + if (txt) + { + rv = CORBA_string_dup (txt); + g_free (txt); + } + else + rv = CORBA_string_dup (""); return rv; } @@ -261,11 +266,17 @@ impl_getTextAfterOffset (PortableServer_Servant _servant, gchar *txt; CORBA_char *rv; + txt = atk_text_get_text_after_offset (ATK_TEXT(text->atko), (gint) offset, (AtkTextBoundary) type, (gint *) startOffset, (gint *) endOffset); - rv = CORBA_string_dup (txt); - g_free (txt); + if (txt) + { + rv = CORBA_string_dup (txt); + g_free (txt); + } + else + rv = CORBA_string_dup (""); return rv; } @@ -286,8 +297,13 @@ impl_getTextAtOffset (PortableServer_Servant _servant, txt = atk_text_get_text_at_offset (ATK_TEXT(text->atko), (gint) offset, (AtkTextBoundary) type, (gint *) startOffset, (gint *) endOffset); - rv = CORBA_string_dup (txt); - g_free (txt); + if (txt) + { + rv = CORBA_string_dup (txt); + g_free (txt); + } + else + rv = CORBA_string_dup (""); return rv; } @@ -320,8 +336,14 @@ impl_getTextBeforeOffset (PortableServer_Servant _servant, txt = atk_text_get_text_before_offset (ATK_TEXT(text->atko), (gint) offset, (AtkTextBoundary) type, (gint *) startOffset, (gint *) endOffset); - rv = CORBA_string_dup (txt); - g_free (txt); + if (txt) + { + rv = CORBA_string_dup (txt); + g_free (txt); + } + else + rv = CORBA_string_dup (""); + return rv; } diff --git a/po/ChangeLog b/po/ChangeLog index 56a1d0b..287d447 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,43 @@ +2001-10-01 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-10-01 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-28 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-27 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + +2001-09-26 gettextize + + * Makefile.in.in: Upgrade to gettext-0.10.38. + 2001-09-11 gettextize * Makefile.in.in: Upgrade to gettext-0.10.38.