2001-12-10 Michael Meeks <michael@ximian.com>
authormichael <michael@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 10 Dec 2001 18:32:05 +0000 (18:32 +0000)
committermichael <michael@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 10 Dec 2001 18:32:05 +0000 (18:32 +0000)
* cspi/spi_action.c: audit for exception handling,
tolerating NULL object references safely etc.

* cspi/spi_accessible.c: ditto.

* cspi/spi_component.c: ditto.

* cspi/spi_editabletext.c: ditto.

* cspi/spi_hyperlink.c: ditto.

* cspi/spi_hypertext.c: ditto.

* cspi/spi_image.c: ditto.

* cspi/spi_selection.c: ditto.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@159 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
cspi/spi.h
cspi/spi_action.c
cspi/spi_application.c
cspi/spi_component.c
cspi/spi_editabletext.c
cspi/spi_hyperlink.c
cspi/spi_hypertext.c
cspi/spi_image.c
cspi/spi_table.c

index 92845b6..caed7b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
 2001-12-10  Michael Meeks  <michael@ximian.com>
 
+       * cspi/spi_action.c: audit for exception handling,
+       tolerating NULL object references safely etc.
+
+       * cspi/spi_accessible.c: ditto.
+
+       * cspi/spi_component.c: ditto.
+
+       * cspi/spi_editabletext.c: ditto.
+
+       * cspi/spi_hyperlink.c: ditto.
+
+       * cspi/spi_hypertext.c: ditto.
+
+       * cspi/spi_image.c: ditto.
+
+       * cspi/spi_selection.c: ditto.
+
+2001-12-10  Michael Meeks  <michael@ximian.com>
+
        * configure.in: use cspi/libspi.pc.in instead.
 
        * Makefile.am (pkgconfig_DATA): upd. to match.
index 67dbaf4..184a0ee 100644 (file)
@@ -517,6 +517,10 @@ AccessibleEditableText_pasteText (AccessibleEditableText *obj,
  * AccessibleHyperlink function prototypes
  *
  */
+void
+AccessibleHyperlink_ref (AccessibleHyperlink *obj);
+void
+AccessibleHyperlink_unref (AccessibleHyperlink *obj);
 
 long
 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
index 9ce42a7..507af16 100644 (file)
@@ -37,15 +37,21 @@ AccessibleAction_unref (AccessibleAction *obj)
  * Get the number of actions invokable on an #AccessibleAction implementor.
  *
  * Returns: a #long integer indicatin the number of invokable actions.
- *
  **/
 long
 AccessibleAction_getNActions (AccessibleAction *obj)
 {
-  return (long)
+  long retval;
+
+  cspi_return_val_if_fail (obj != NULL, -1);
+
+  retval =
     Accessibility_Action__get_nActions (CSPI_OBJREF (obj), cspi_ev ());
-}
 
+  cspi_return_val_if_ev ("getNActions", -1);
+
+  return retval;
+}
 
 /**
  * AccessibleAction_getDescription:
@@ -56,16 +62,22 @@ AccessibleAction_getNActions (AccessibleAction *obj)
  *      object implementing #AccessibleAction.
  *
  * Returns: a UTF-8 string describing the '@i-th' invokable action.
- *
  **/
 char *
 AccessibleAction_getDescription (AccessibleAction *obj,
-                                 long int i)
+                                 long int          i)
 {
-  return (char *)
+  char *retval;
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
     Accessibility_Action_getDescription (CSPI_OBJREF (obj),
                                         (CORBA_long) i,
                                         cspi_ev ());
+
+  cspi_return_val_if_ev ("getDescription", NULL);
+
+  return retval;
 }
 
 /**
@@ -78,19 +90,24 @@ AccessibleAction_getDescription (AccessibleAction *obj,
  *
  * Returns: a UTF-8 string which can be parsed to determine the @i-th
  *       invokable action's keybindings.
- *
  **/
 char *
 AccessibleAction_getKeyBinding (AccessibleAction *obj,
-                               long int i)
+                               long int          i)
 {
-  return (char *) 
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
     Accessibility_Action_getKeyBinding (CSPI_OBJREF (obj),
        (CORBA_long) i,
        cspi_ev ());
-}
 
+  cspi_return_val_if_ev ("getKeyBinding", NULL);
 
+  return retval;
+}
 
 /**
  * AccessibleAction_getName:
@@ -101,18 +118,24 @@ AccessibleAction_getKeyBinding (AccessibleAction *obj,
  *      object implementing #AccessibleAction.
  *
  * Returns: the 'event type' name of the action, as a UTF-8 string.
- *
  **/
 char *
 AccessibleAction_getName (AccessibleAction *obj,
-                         long int i)
+                         long int          i)
 {
-  return (char *)
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
    Accessibility_Action_getName (CSPI_OBJREF (obj),
                                 (CORBA_long) i,
                                 cspi_ev ());
-}
 
+  cspi_return_val_if_ev ("getName", NULL);
+
+  return retval;
+}
 
 /**
  * AccessibleAction_doAction:
@@ -122,16 +145,21 @@ AccessibleAction_getName (AccessibleAction *obj,
  * Invoke the action indicated by #index.
  *
  * Returns: #TRUE if the action is successfully invoked, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleAction_doAction (AccessibleAction *obj,
                            long int i)
 {
-  return (SPIBoolean)
+  SPIBoolean retval;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  retval = (SPIBoolean)
     Accessibility_Action_doAction (CSPI_OBJREF (obj),
                                   (CORBA_long) i,
                                   cspi_ev ());
-}
 
+  cspi_return_val_if_ev ("doAction", FALSE);
 
+  return retval;
+}
index 6874d75..d6ec2aa 100644 (file)
@@ -13,7 +13,6 @@
  * Increment the reference count for an #AccessibleApplication.
  *
  * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleApplication_ref (AccessibleApplication *obj)
@@ -28,7 +27,6 @@ AccessibleApplication_ref (AccessibleApplication *obj)
  * Decrement the reference count for an #AccessibleApplication.
  *
  * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleApplication_unref (AccessibleApplication *obj)
@@ -44,12 +42,21 @@ AccessibleApplication_unref (AccessibleApplication *obj)
  *
  * Returns: a UTF-8 string indicating which UI toolkit is
  *          used by an application.
- *
  **/
 char *
 AccessibleApplication_getToolkitName (AccessibleApplication *obj)
 {
-  return Accessibility_Application__get_toolkitName (CSPI_OBJREF (obj), cspi_ev ());
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
+    Accessibility_Application__get_toolkitName (CSPI_OBJREF (obj),
+                                               cspi_ev ());
+
+  cspi_return_val_if_ev ("toolkitName", NULL);
+
+  return retval;
 }
 
 /**
@@ -61,12 +68,21 @@ AccessibleApplication_getToolkitName (AccessibleApplication *obj)
  *
  * Returns: a UTF-8 string indicating the application's
  *          at-spi version.
- *
  **/
 char *
 AccessibleApplication_getVersion (AccessibleApplication *obj)
 {
-  return Accessibility_Application__get_version (CSPI_OBJREF (obj), cspi_ev ());
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
+    Accessibility_Application__get_version (CSPI_OBJREF (obj),
+                                           cspi_ev ());
+
+  cspi_return_val_if_ev ("getVersion", NULL);
+
+  return retval;
 }
 
 /**
@@ -83,7 +99,16 @@ AccessibleApplication_getVersion (AccessibleApplication *obj)
 long
 AccessibleApplication_getID (AccessibleApplication *obj)
 {
-  return Accessibility_Application__get_id (CSPI_OBJREF (obj), cspi_ev ());
+  long retval;
+
+  cspi_return_val_if_fail (obj != NULL, 0);
+
+  retval = Accessibility_Application__get_id (CSPI_OBJREF (obj),
+                                             cspi_ev ());
+
+  cspi_return_val_if_ev ("get_id", 0);
+
+  return retval;
 }
 
 /**
@@ -118,5 +143,3 @@ AccessibleApplication_resume (AccessibleApplication *obj)
 {
   return FALSE;
 }
-
-
index f644da3..2d25593 100644 (file)
@@ -55,13 +55,18 @@ AccessibleComponent_contains (AccessibleComponent *obj,
                               long int y,
                               AccessibleCoordType ctype)
 {
+  SPIBoolean retval;
+
   cspi_return_val_if_fail (obj != NULL, FALSE);
 
-  return Accessibility_Component_contains (CSPI_OBJREF (obj),
-                                           (CORBA_long) x,
-                                           (CORBA_long) y,
-                                           ctype,
-                                           cspi_ev ());
+  retval = Accessibility_Component_contains (CSPI_OBJREF (obj),
+                                            (CORBA_long) x,
+                                            (CORBA_long) y,
+                                            ctype,
+                                            cspi_ev ());
+  cspi_return_val_if_ev ("contains", FALSE);
+
+  return retval;
 }
 
 /**
@@ -123,7 +128,7 @@ AccessibleComponent_getExtents (AccessibleComponent *obj,
   bbox = Accessibility_Component_getExtents (CSPI_OBJREF (obj),
                                             ctype,
                                             cspi_ev ());
-  if (cspi_check_ev ("AccessibleComponent_getExtents"))
+  if (!cspi_check_ev ("AccessibleComponent_getExtents"))
     {
       *x = *y = *width = *height = 0;    
     }
@@ -153,11 +158,22 @@ AccessibleComponent_getPosition (AccessibleComponent *obj,
                                  long int *y,
                                  AccessibleCoordType ctype)
 {
+  CORBA_long cx, cy;
+
+  cspi_return_if_fail (obj != NULL);
+
   Accessibility_Component_getPosition (CSPI_OBJREF (obj),
-                                       (CORBA_long *) x,
-                                       (CORBA_long *) y,
-                                       ctype,
-                                       cspi_ev ());
+                                      &cx, &cy, ctype, cspi_ev ());
+
+  if (!cspi_check_ev ("getPosition"))
+    {
+      *x = *y = 0;
+    }
+  else
+    {
+      *x = cx;
+      *y = cy;
+    }
 }
 
 /**
@@ -174,6 +190,8 @@ AccessibleComponent_getSize (AccessibleComponent *obj,
                              long int *width,
                              long int *height)
 {
+  cspi_return_if_fail (obj != NULL);
+
   Accessibility_Component_getSize (CSPI_OBJREF (obj),
                                    (CORBA_long *) width,
                                    (CORBA_long *) height,
@@ -192,11 +210,16 @@ AccessibleComponent_getSize (AccessibleComponent *obj,
 AccessibleComponentLayer
 AccessibleComponent_getLayer (AccessibleComponent *obj)
 {
+  AccessibleComponentLayer     retval;
   Accessibility_ComponentLayer zlayer;
-  AccessibleComponentLayer retval;
-  
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
   zlayer = Accessibility_Component_getLayer (CSPI_OBJREF (obj),
                                             cspi_ev ());
+
+  cspi_return_val_if_ev ("getLayer", SPI_LAYER_INVALID);
+
   switch (zlayer)
     {
     case Accessibility_LAYER_BACKGROUND:
@@ -221,6 +244,7 @@ AccessibleComponent_getLayer (AccessibleComponent *obj)
       retval = SPI_LAYER_INVALID;
       break;
     }
+
   return retval;
 }
 
@@ -237,8 +261,16 @@ AccessibleComponent_getLayer (AccessibleComponent *obj)
 short
 AccessibleComponent_getMDIZOrder (AccessibleComponent *obj)
 {
-  return (short) Accessibility_Component_getMDIZOrder (CSPI_OBJREF (obj),
-                                                       cspi_ev ());
+  short retval;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  retval = Accessibility_Component_getMDIZOrder (CSPI_OBJREF (obj),
+                                                cspi_ev ());
+
+  cspi_return_val_if_ev ("getMDIZOrder", FALSE);
+
+  return retval;
 }
 
 /**
@@ -247,10 +279,8 @@ AccessibleComponent_getMDIZOrder (AccessibleComponent *obj)
  *
  * Attempt to set the keyboard input focus to the specified
  *         #AccessibleComponent.
- *
  **/
 void
 AccessibleComponent_grabFocus (AccessibleComponent *obj)
 {
-  ;
 }
index e0f9270..3fe3a4c 100644 (file)
@@ -7,9 +7,6 @@
  * Increment the reference count for an #AccessibleEditableText object.
  *       Since AccessibleEditableText is derived from AccessibleText,
  *       this is the same as AccessibleText_ref().
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleEditableText_ref (AccessibleEditableText *obj)
@@ -24,9 +21,6 @@ AccessibleEditableText_ref (AccessibleEditableText *obj)
  * Decrement the reference count for an #AccessibleEdiitableText object.
  *       Since AccessibleEditableText is derived from AccessibleText,
  *       this is the same as AccessibleText_unref().
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleEditableText_unref (AccessibleEditableText *obj)
@@ -46,7 +40,6 @@ AccessibleEditableText_unref (AccessibleEditableText *obj)
  *          object, and the bounds of the range.
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
@@ -54,14 +47,20 @@ AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
                                      long int startPos,
                                      long int endPos)
 {
-  return (SPIBoolean)
+  SPIBoolean retval;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  retval = 
     Accessibility_EditableText_setAttributes (CSPI_OBJREF (obj),
                                              (CORBA_char *) attributes,
                                              (CORBA_long) startPos,
                                              (CORBA_long) endPos, cspi_ev ());
-}
 
+  cspi_return_val_if_ev ("setAttributes", FALSE);
 
+  return retval;
+}
 
 /**
  * AccessibleEditableText_setTextContents:
@@ -72,18 +71,20 @@ AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
  * Replace the entire text contents of an #AccessibleEditableText object.
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
                                         const char *newContents)
 {
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
   Accessibility_EditableText_setTextContents (CSPI_OBJREF (obj),
                                              (CORBA_char *) newContents, cspi_ev ());
-  return TRUE; /* TODO: make bonobo method return a SPIBoolean */
-}
 
+  cspi_return_val_if_ev ("setTextContents", FALSE);
 
+  return TRUE;
+}
 
 /**
  * AccessibleEditableText_insertText:
@@ -99,7 +100,6 @@ AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
  *       variable-width encoding.
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_insertText (AccessibleEditableText *obj,
@@ -107,13 +107,16 @@ AccessibleEditableText_insertText (AccessibleEditableText *obj,
                                    const char *text,
                                    long int length)
 {
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
   Accessibility_EditableText_insertText (CSPI_OBJREF (obj),
                                         (CORBA_long) position, (const CORBA_char *) text,
                                         (CORBA_long) length, cspi_ev ());
-  return TRUE;
-}
 
+  cspi_return_val_if_ev ("insertText", FALSE);
 
+  return TRUE;
+}
 
 /**
  * AccessibleEditableText_copyText:
@@ -128,19 +131,23 @@ AccessibleEditableText_insertText (AccessibleEditableText *obj,
  * @see: AccessibleEditableText_pasteText 
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_copyText (AccessibleText *obj,
                                  long int startPos,
                                  long int endPos)
 {
-  Accessibility_EditableText_copyText (CSPI_OBJREF (obj),
-                                      (CORBA_long) startPos, (CORBA_long) endPos, cspi_ev ());
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  Accessibility_EditableText_copyText (
+    CSPI_OBJREF (obj), (CORBA_long) startPos,
+    (CORBA_long) endPos, cspi_ev ());
+
+  cspi_return_val_if_ev ("copyText", FALSE);
+
   return TRUE;
 }
 
-
 /**
  * AccessibleEditableText_cutText:
  * @obj: a pointer to the #AccessibleEditableText object to modify.
@@ -155,19 +162,22 @@ AccessibleEditableText_copyText (AccessibleText *obj,
  * @see: AccessibleEditableText_pasteText
  *
  * Returns: #TRUE if operation was successful, #FALSE otherwise.
- *
  **/
 SPIBoolean
 AccessibleEditableText_cutText (AccessibleEditableText *obj,
                                 long int startPos,
                                 long int endPos)
 {
-  Accessibility_EditableText_cutText (CSPI_OBJREF (obj),
-                                      (CORBA_long) startPos, (CORBA_long) endPos, cspi_ev ());
-  return TRUE;
-}
+  cspi_return_val_if_fail (obj != NULL, FALSE);
 
+  Accessibility_EditableText_cutText (
+    CSPI_OBJREF (obj),
+    (CORBA_long) startPos, (CORBA_long) endPos, cspi_ev ());
 
+  cspi_return_val_if_ev ("cutText", FALSE);
+
+  return TRUE;
+}
 
 /**
  * AccessibleEditableText_deleteText:
@@ -183,19 +193,22 @@ AccessibleEditableText_cutText (AccessibleEditableText *obj,
  * @see: AccessibleEditableText_cutText
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
                                    long startPos,
                                    long endPos)
 {
-  Accessibility_EditableText_deleteText (CSPI_OBJREF (obj),
-                                      (CORBA_long) startPos, (CORBA_long) endPos, cspi_ev ());
-  return TRUE;
-}
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  Accessibility_EditableText_deleteText (
+    CSPI_OBJREF (obj),
+    (CORBA_long) startPos, (CORBA_long) endPos, cspi_ev ());
 
+  cspi_return_val_if_ev ("deleteText", FALSE);
 
+  return TRUE;
+}
 
 /**
  * AccessibleEditableText_pasteText:
@@ -209,14 +222,17 @@ AccessibleEditableText_deleteText (AccessibleEditableText *obj,
  *       variable-width encoding.
  *
  * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- *
  **/
 SPIBoolean
 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
                                   long int position)
 {
-  Accessibility_EditableText_pasteText (CSPI_OBJREF (obj),
-                                       (CORBA_long) position, cspi_ev ());
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  Accessibility_EditableText_pasteText (
+    CSPI_OBJREF (obj), (CORBA_long) position, cspi_ev ());
+
+  cspi_return_val_if_ev ("pasteText", FALSE);
+
   return TRUE;
 }
-
index a49f5ab..d9f03d9 100644 (file)
@@ -5,33 +5,23 @@
  * @obj: a pointer to the #AccessibleHyperlink object on which to operate.
  *
  * Increment the reference count for an #AccessibleHyperlink object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
-int
+void
 AccessibleHyperlink_ref (AccessibleHyperlink *obj)
 {
   cspi_object_ref (obj);
-  return 0;
 }
 
-
-
 /**
  * AccessibleHyperlink_unref:
  * @obj: a pointer to the #AccessibleHyperlink object on which to operate.
  *
  * Decrement the reference count for an #AccessibleHyperlink object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
-int
+void
 AccessibleHyperlink_unref (AccessibleHyperlink *obj)
 {
   cspi_object_ref (obj);
-  return 0;
 }
 
 /**
@@ -45,15 +35,21 @@ AccessibleHyperlink_unref (AccessibleHyperlink *obj)
  * @see AccessibleHyperlink_getURI() and AccessibleHyperlink_getObject().
  *
  * Returns: a #long indicating the number of anchors in this hyperlink.
- *
  **/
 long
 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj)
 {
-  return (long)
+  long retval;
+
+  cspi_return_val_if_fail (obj != NULL, -1);
+
+  retval =
     Accessibility_Hyperlink__get_nAnchors (CSPI_OBJREF (obj), cspi_ev ());
-}
 
+  cspi_return_val_if_ex ("getNAnchors", -1);
+
+  return retval;
+}
 
 /**
  * AccessibleHyperlink_getURI:
@@ -63,15 +59,22 @@ AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj)
  * Get the URI associated with a particular hyperlink anchor.  
  *
  * Returns: a UTF-8 string giving the URI of the @ith hyperlink anchor.
- *
  **/
 char *
 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
-                            long int i)
+                            long int             i)
 {
-  return (char *)
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval =
     Accessibility_Hyperlink_getURI (CSPI_OBJREF (obj),
                                    (CORBA_long) i, cspi_ev ());
+
+  cspi_return_val_if_ex ("getURI", NULL);
+
+  return retval;
 }
 
 /**
@@ -83,12 +86,13 @@ AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
  *
  * Returns: an #Accessible that represents the object associated with the @ith anchor
  *        of the specified #AccessibleHyperlink.
- *
  **/
 Accessible*
 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
-                               long int i)
+                               long int             i)
 {
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
   return cspi_object_add (
     Accessibility_Hyperlink_getObject (CSPI_OBJREF (obj),
                                       (CORBA_long) i, cspi_ev ()));
@@ -105,20 +109,23 @@ AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
  *
  * Get the starting and ending character offsets of the text range associated with
  *       a #AccessibleHyperlink, in its originating #AccessibleHypertext.
- *
  **/
 void
 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
                                    long int *startIndex,
                                    long int *endIndex)
 {
+  long retval;
+
+  cspi_return_if_fail (obj != NULL);
+
   *startIndex = (long)
     Accessibility_Hyperlink__get_startIndex (CSPI_OBJREF (obj), cspi_ev ());
   *endIndex = (long)
     Accessibility_Hyperlink__get_endIndex (CSPI_OBJREF (obj), cspi_ev ());
-}
-
 
+  cspi_return_if_ex ("getIndexRange");
+}
 
 /**
  * AccessibleHyperlink_isValid:
@@ -129,13 +136,20 @@ AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
  *
  * Returns: #TRUE of the specified #AccessibleHyperlink is still valid with respect
  *          to its originating #AccessibleHypertext object, #FALSE otherwise.
- *
  **/
 SPIBoolean
 AccessibleHyperlink_isValid (AccessibleHyperlink *obj)
 {
-  return (SPIBoolean)
+  SPIBoolean retval;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  retval =
     Accessibility_Hyperlink_isValid (CSPI_OBJREF (obj), cspi_ev ());
+
+  cspi_return_val_if_ex ("isValid", FALSE);
+
+  return retval;
 }
 
 
index 23c86f5..e9be198 100644 (file)
@@ -7,9 +7,6 @@
  * Increment the reference count for an #AccessibleHypertext object.
  *       Since AccessibleHypertext is derived from AccessibleText,
  *       this is the same as AccessibleText_unref().
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleHypertext_ref (AccessibleHypertext *obj)
@@ -24,9 +21,6 @@ AccessibleHypertext_ref (AccessibleHypertext *obj)
  * Decrement the reference count for an #AccessibleHypertext object.
  *       Since AccessibleHypertext is derived from AccessibleText,
  *       this is the same as AccessibleText_unref().
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleHypertext_unref (AccessibleHypertext *obj)
@@ -46,15 +40,21 @@ AccessibleHypertext_unref (AccessibleHypertext *obj)
  *        the number cannot be determined (for example, if the
  *        #AccessibleHypertext object is so large that it is not
  *        all currently in the memory cache).
- *
  **/
 long
 AccessibleHypertext_getNLinks (AccessibleHypertext *obj)
 {
-  return (long)
+  long retval;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  retval =
     Accessibility_Hypertext_getNLinks (CSPI_OBJREF (obj), cspi_ev ());
-}
 
+  cspi_return_val_if_ex ("getNLinks", -1);
+
+  return retval;
+}
 
 /**
  * AccessibleHypertext_getLink:
@@ -64,18 +64,18 @@ AccessibleHypertext_getNLinks (AccessibleHypertext *obj)
  * Get the #AccessibleHyperlink object at a specified index.
  *
  * Returns: the #AccessibleHyperlink object specified by #linkIndex.
- *
  **/
 AccessibleHyperlink *
 AccessibleHypertext_getLink (AccessibleHypertext *obj,
-                             long int linkIndex)
+                             long int             linkIndex)
 {
-  return (AccessibleHyperlink *)
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  return cspi_object_new (
     Accessibility_Hypertext_getLink (CSPI_OBJREF (obj),
-                                    (CORBA_long) linkIndex, cspi_ev ());
+                                    (CORBA_long) linkIndex, cspi_ev ()));
 }
 
-
 /**
  * AccessibleHypertext_getLinkIndex:
  * @obj: a pointer to the #AccessibleHypertext implementor on which to operate.
@@ -87,15 +87,23 @@ AccessibleHypertext_getLink (AccessibleHypertext *obj,
  * Returns: the linkIndex of the #AccessibleHyperlink active at
  *        character offset @characterOffset, or -1 if there is
  *        no hyperlink at the specified character offset.
- *
  **/
 long
 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
-                                  long int characterOffset)
+                                  long int             characterOffset)
 {
-  return (long)
+  long retval;
+
+  cspi_return_val_if_fail (obj != NULL, -1);
+
+  retval = 
     Accessibility_Hypertext_getLinkIndex (CSPI_OBJREF (obj),
-                                         (CORBA_long) characterOffset, cspi_ev ());
+                                         (CORBA_long) characterOffset,
+                                         cspi_ev ());
+
+  cspi_return_val_if_ex ("getLinkIndex", -1);
+
+  return retval;
 }
 
 
index 8b1a8b5..8349d8e 100644 (file)
@@ -5,9 +5,6 @@
  * @obj: a pointer to the #AccessibleImage implementor on which to operate.
  *
  * Increment the reference count for an #AccessibleImage object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleImage_ref (AccessibleImage *obj)
@@ -20,9 +17,6 @@ AccessibleImage_ref (AccessibleImage *obj)
  * @obj: a pointer to the #AccessibleImage implementor on which to operate.
  *
  * Decrement the reference count for an #AccessibleImage object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleImage_unref (AccessibleImage *obj)
@@ -30,7 +24,6 @@ AccessibleImage_unref (AccessibleImage *obj)
   cspi_object_unref (obj);
 }
 
-
 /**
  * AccessibleImage_getImageDescription:
  * @obj: a pointer to the #AccessibleImage implementor on which to operate.
@@ -38,16 +31,22 @@ AccessibleImage_unref (AccessibleImage *obj)
  * Get the description of the image displayed in an #AccessibleImage object.
  *
  * Returns: a UTF-8 string describing the image.
- *
  **/
 char *
 AccessibleImage_getImageDescription (AccessibleImage *obj)
 {
-  return (char *)
-    Accessibility_Image__get_imageDescription (CSPI_OBJREF (obj), cspi_ev ());
-}
+  char *retval;
+
+  cspi_return_val_if_fail (obj != NULL, NULL);
+
+  retval = 
+    Accessibility_Image__get_imageDescription (CSPI_OBJREF (obj),
+                                              cspi_ev ());
 
+  cspi_return_val_if_ev ("getImageDescription", NULL);
 
+  return NULL;
+}
 
 /**
  * AccessibleImage_getImageSize:
@@ -56,18 +55,30 @@ AccessibleImage_getImageDescription (AccessibleImage *obj)
  * @height: a pointer to a #long into which the y extents (height) will be returned.
  *
  * Get the size of the image displayed in a specified #AccessibleImage object.
- *
  **/
 void
 AccessibleImage_getImageSize (AccessibleImage *obj,
                               long int *width,
                               long int *height)
 {
-  Accessibility_Image_getImageSize (CSPI_OBJREF (obj),
-                                   (CORBA_long *) width, (CORBA_long *) height, cspi_ev ());
-}
+  CORBA_long w, h;
+
+  cspi_return_if_fail (obj != NULL);
 
+  Accessibility_Image_getImageSize (CSPI_OBJREF (obj),
+                                   &w, &h, cspi_ev ());
 
+  if (!cspi_check_ev ("getImageSize"))
+    {
+      *width = 0;
+      *height = 0;
+    }
+  else
+    {
+      *width = w;
+      *height = h;
+    }
+}
 
 /**
  * AccessibleImage_getImagePosition:
@@ -79,7 +90,6 @@ AccessibleImage_getImageSize (AccessibleImage *obj,
  *
  * Get the minimum x and y coordinates of the image displayed in a
  *         specified #AccessibleImage implementor.
- *
  **/
 void
 AccessibleImage_getImagePosition (AccessibleImage *obj,
@@ -87,9 +97,23 @@ AccessibleImage_getImagePosition (AccessibleImage *obj,
                                   long *y,
                                   AccessibleCoordType ctype)
 {
+  CORBA_long cx, cy;
+
+  cspi_return_if_fail (obj != NULL);
+
   Accessibility_Image_getImagePosition (CSPI_OBJREF (obj),
-                                       (CORBA_long *) x, (CORBA_long *) y, (CORBA_short) ctype,
-                                       cspi_ev ());
+                                       &cx, &cy, ctype, cspi_ev ());
+
+  if (!cspi_check_ev ("getImagePosition"))
+    {
+      *x = 0;
+      *y = 0;
+    }
+  else
+    {
+      *x = cx;
+      *y = cy;
+    }
 }
 
 /**
@@ -104,7 +128,6 @@ AccessibleImage_getImagePosition (AccessibleImage *obj,
  *
  * Get the bounding box of the image displayed in a
  *         specified #AccessibleImage implementor.
- *
  **/
 void
 AccessibleImage_getImageExtents (AccessibleImage *obj,
@@ -114,12 +137,23 @@ AccessibleImage_getImageExtents (AccessibleImage *obj,
                                 long *height,
                                 AccessibleCoordType ctype)
 {
-  Accessibility_BoundingBox bbox;      
+  Accessibility_BoundingBox bbox;
+
+  cspi_return_if_fail (obj != NULL);
+
   bbox = Accessibility_Image_getImageExtents (CSPI_OBJREF (obj),
                                              (CORBA_short) ctype,
                                              cspi_ev ());
-  *x = bbox.x;
-  *y = bbox.y;
-  *width = bbox.width;
-  *height = bbox.height;
+
+  if (!cspi_check_ev ("getImageExtents"))
+    {
+      *x = *y = *width = *height = 0;
+    }
+  else
+    {
+      *x = bbox.x;
+      *y = bbox.y;
+      *width = bbox.width;
+      *height = bbox.height;
+    }
 }
index 24ba32b..6d525d6 100644 (file)
@@ -6,9 +6,6 @@
  * @obj: a pointer to the #AccessibleTable implementor on which to operate.
  *
  * Increment the reference count for an #AccessibleTable object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleTable_ref (AccessibleTable *obj)
@@ -21,9 +18,6 @@ AccessibleTable_ref (AccessibleTable *obj)
  * @obj: a pointer to the #AccessibleTable implementor on which to operate.
  *
  * Decrement the reference count for an #AccessibleTable object.
- *
- * Returns: (no return code implemented yet).
- *
  **/
 void
 AccessibleTable_unref (AccessibleTable *obj)
@@ -38,7 +32,6 @@ AccessibleTable_unref (AccessibleTable *obj)
  * Get an accessible representation of the caption for an #AccessibleTable.
  *
  * Returns: an #Accessible object that serves as the table's caption.
- *
  **/
 Accessible *
 AccessibleTable_getCaption (AccessibleTable *obj)