diff libinterp/octave-value/ov-java.cc @ 20591:0650b8431037

eliminate more simple uses of error_state * besselj.cc, bitfcns.cc, utils.cc, chol.cc, ov-java.cc: Eliminate simple uses of error_state.
author John W. Eaton <jwe@octave.org>
date Mon, 05 Oct 2015 21:37:03 -0400
parents dd6345fd8a97
children
line wrap: on
line diff
--- a/libinterp/octave-value/ov-java.cc	Mon Oct 05 21:13:12 2015 -0400
+++ b/libinterp/octave-value/ov-java.cc	Mon Oct 05 21:37:03 2015 -0400
@@ -831,24 +831,16 @@
       {
         idx_vector v = idx(i).index_vector ();
 
-        if (! error_state)
-          {
-            jintArray_ref i_array (jni_env, jni_env->NewIntArray (v.length ()));
-            jint *buf = jni_env->GetIntArrayElements (i_array, 0);
-
-            for (int k = 0; k < v.length (); k++)
-              buf[k] = v(k);
-
-            jni_env->ReleaseIntArrayElements (i_array, buf, 0);
-            jni_env->SetObjectArrayElement (retval, i, i_array);
-
-            check_exception (jni_env);
-
-            if (error_state)
-              break;
-          }
-        else
-          break;
+        jintArray_ref i_array (jni_env, jni_env->NewIntArray (v.length ()));
+        jint *buf = jni_env->GetIntArrayElements (i_array, 0);
+
+        for (int k = 0; k < v.length (); k++)
+          buf[k] = v(k);
+
+        jni_env->ReleaseIntArrayElements (i_array, buf, 0);
+        jni_env->SetObjectArrayElement (retval, i, i_array);
+
+        check_exception (jni_env);
       }
     catch (index_exception& e)
       {
@@ -868,12 +860,9 @@
   jobject_ref resObj (jni_env);
   jobject_ref java_idx (jni_env, make_java_index (jni_env, idx));
 
-  if (! error_state)
-    {
-      jclass_ref helperClass (jni_env, find_octave_class (jni_env, "org/octave/ClassHelper"));
-      jmethodID mID = jni_env->GetStaticMethodID (helperClass, "arraySubsref", "(Ljava/lang/Object;[[I)Ljava/lang/Object;");
-      resObj = jni_env->CallStaticObjectMethod (helperClass, mID, jobj, jobject (java_idx));
-    }
+  jclass_ref helperClass (jni_env, find_octave_class (jni_env, "org/octave/ClassHelper"));
+  jmethodID mID = jni_env->GetStaticMethodID (helperClass, "arraySubsref", "(Ljava/lang/Object;[[I)Ljava/lang/Object;");
+  resObj = jni_env->CallStaticObjectMethod (helperClass, mID, jobj, jobject (java_idx));
 
   if (resObj)
     retval = box (jni_env, resObj);
@@ -896,7 +885,7 @@
   jobject_ref rhsObj (jni_env);
   jobject_ref java_idx (jni_env, make_java_index (jni_env, idx));
 
-  if (! error_state && unbox (jni_env, rhs, rhsObj, rhsCls))
+  if (unbox (jni_env, rhs, rhsObj, rhsCls))
     {
       jclass_ref helperClass (jni_env, find_octave_class (jni_env, "org/octave/ClassHelper"));
       jmethodID mID = jni_env->GetStaticMethodID (helperClass, "arraySubsasgn",
@@ -985,12 +974,7 @@
                   if (js)
                     c(i) = octave_value (jstring_to_string (jni_env, js), type);
                   else
-                    {
-                      c(i) = check_exception (jni_env);
-
-                      if (error_state)
-                        break;
-                    }
+                    c(i) = check_exception (jni_env);
                 }
 
               retval = octave_value (c);
@@ -1568,8 +1552,6 @@
     varargin(i) = box (env, env->GetObjectArrayElement (argin, i), 0);
 
   varargout = feval (fname, varargin, nargout);
-  if (error_state)
-    return false;
 
   jobjectArray_ref out_objs (env, argout), out_clss (env);
   out_objs.detach ();
@@ -1598,38 +1580,31 @@
         {
           jobject_ref jobj (env, env->GetObjectArrayElement (args, i));
           oct_args(i) = box (env, jobj, 0);
-
-          if (error_state)
-            break;
         }
 
-      if (! error_state)
+      BEGIN_INTERRUPT_WITH_EXCEPTIONS;
+
+      if (val.is_function_handle ())
+        {
+          octave_function *fcn = val.function_value ();
+          feval (fcn, oct_args);
+        }
+      else if (val.is_cell () && val.length () > 0
+               && (val.rows () == 1 || val.columns () == 1)
+               && val.cell_value()(0).is_function_handle ())
         {
-          BEGIN_INTERRUPT_WITH_EXCEPTIONS;
-
-          if (val.is_function_handle ())
-            {
-              octave_function *fcn = val.function_value ();
-              feval (fcn, oct_args);
-            }
-          else if (val.is_cell () && val.length () > 0
-                   && (val.rows () == 1 || val.columns () == 1)
-                   && val.cell_value()(0).is_function_handle ())
-            {
-              Cell c = val.cell_value ();
-              octave_function *fcn = c(0).function_value ();
-
-              for (int i=1; i<c.numel (); i++)
-                oct_args(len+i-1) = c(i);
-
-              if (! error_state)
-                feval (fcn, oct_args);
-            }
-          else
-            error ("trying to invoke non-invocable object");
-
-          END_INTERRUPT_WITH_EXCEPTIONS;
+          Cell c = val.cell_value ();
+          octave_function *fcn = c(0).function_value ();
+
+          for (int i=1; i<c.numel (); i++)
+            oct_args(len+i-1) = c(i);
+
+          feval (fcn, oct_args);
         }
+      else
+        error ("trying to invoke non-invocable object");
+
+      END_INTERRUPT_WITH_EXCEPTIONS;
     }
 }
 
@@ -1753,11 +1728,9 @@
           ovl(1) = (idx.front ())(0);
           ovl(2) = rhs;
           feval ("__java_set__", ovl, 0);
-          if (! error_state)
-            {
-              count++;
-              retval = octave_value (this);
-            }
+
+          count++;
+          retval = octave_value (this);
         }
       else if (type.length () > 2 && type[1] == '(')
         {
@@ -1766,33 +1739,25 @@
           new_idx.push_back (*it++);
           new_idx.push_back (*it++);
           octave_value_list u = subsref (type.substr (0, 2), new_idx, 1);
-          if (! error_state)
-            {
-              std::list<octave_value_list> next_idx (idx);
-              next_idx.erase (next_idx.begin ());
-              next_idx.erase (next_idx.begin ());
-              u(0).subsasgn (type.substr (2), next_idx, rhs);
-              if (! error_state)
-                {
-                  count++;
-                  retval = octave_value (this);
-                }
-            }
+
+          std::list<octave_value_list> next_idx (idx);
+          next_idx.erase (next_idx.begin ());
+          next_idx.erase (next_idx.begin ());
+          u(0).subsasgn (type.substr (2), next_idx, rhs);
+
+          count++;
+          retval = octave_value (this);
         }
       else if (type[1] == '.')
         {
           octave_value_list u = subsref (type.substr (0, 1), idx, 1);
-          if (! error_state)
-            {
-              std::list<octave_value_list> next_idx (idx);
-              next_idx.erase (next_idx.begin ());
-              u(0).subsasgn (type.substr (1), next_idx, rhs);
-              if (! error_state)
-                {
-                  count++;
-                  retval = octave_value (this);
-                }
-            }
+
+          std::list<octave_value_list> next_idx (idx);
+          next_idx.erase (next_idx.begin ());
+          u(0).subsasgn (type.substr (1), next_idx, rhs);
+
+          count++;
+          retval = octave_value (this);
         }
       else
         error ("invalid indexing/assignment on Java object");
@@ -1802,11 +1767,9 @@
       if (current_env)
         {
           set_array_elements (current_env, to_java (), idx.front (), rhs);
-          if (! error_state)
-            {
-              count++;
-              retval = octave_value (this);
-            }
+
+          count++;
+          retval = octave_value (this);
         }
       break;
 
@@ -2122,8 +2085,7 @@
 
   initialize_java ();
 
-  if (! error_state)
-    retval = 1;
+  retval = 1;
 
   return retval;
 #else
@@ -2175,27 +2137,24 @@
 
   initialize_java ();
 
-  if (! error_state)
+  JNIEnv *current_env = octave_java::thread_jni_env ();
+
+  if (args.length () > 0)
     {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () > 0)
+      if (args(0).is_string ())
         {
-          if (args(0).is_string ())
-            {
-              std::string classname = args(0).string_value ();
-
-              octave_value_list tmp;
-              for (int i=1; i<args.length (); i++)
-                tmp(i-1) = args(i);
-              retval = octave_java::do_javaObject (current_env, classname, tmp);
-            }
-          else
-            error ("javaObject: CLASSNAME must be a string");
+          std::string classname = args(0).string_value ();
+
+          octave_value_list tmp;
+          for (int i=1; i<args.length (); i++)
+            tmp(i-1) = args(i);
+          retval = octave_java::do_javaObject (current_env, classname, tmp);
         }
       else
-        print_usage ();
+        error ("javaObject: CLASSNAME must be a string");
     }
+  else
+    print_usage ();
 
   return retval;
 #else
@@ -2243,39 +2202,36 @@
 
   initialize_java ();
 
-  if (! error_state)
+  JNIEnv *current_env = octave_java::thread_jni_env ();
+
+  if (args.length () > 1)
     {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () > 1)
+      if (args(0).is_string ())
         {
-          if (args(0).is_string ())
+          std::string methodname = args(0).string_value ();
+
+          octave_value_list tmp;
+          for (int i=2; i<args.length (); i++)
+            tmp(i-2) = args(i);
+
+          if (args(1).is_java ())
             {
-              std::string methodname = args(0).string_value ();
-
-              octave_value_list tmp;
-              for (int i=2; i<args.length (); i++)
-                tmp(i-2) = args(i);
-
-              if (args(1).is_java ())
-                {
-                  octave_java *jobj = TO_JAVA (args(1));
-                  retval = jobj->do_javaMethod (current_env, methodname, tmp);
-                }
-              else if (args(1).is_string ())
-                {
-                  std::string cls = args(1).string_value ();
-                  retval = octave_java::do_javaMethod (current_env, cls, methodname, tmp);
-                }
-              else
-                error ("javaMethod: OBJ must be a Java object or a string");
+              octave_java *jobj = TO_JAVA (args(1));
+              retval = jobj->do_javaMethod (current_env, methodname, tmp);
+            }
+          else if (args(1).is_string ())
+            {
+              std::string cls = args(1).string_value ();
+              retval = octave_java::do_javaMethod (current_env, cls, methodname, tmp);
             }
           else
-            error ("javaMethod: METHODNAME must be a string");
+            error ("javaMethod: OBJ must be a Java object or a string");
         }
       else
-        print_usage ();
+        error ("javaMethod: METHODNAME must be a string");
     }
+  else
+    print_usage ();
 
   return retval;
 #else
@@ -2318,35 +2274,32 @@
 
   initialize_java ();
 
-  if (! error_state)
+  JNIEnv *current_env = octave_java::thread_jni_env ();
+
+  if (args.length () == 2)
     {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () == 2)
+      if (args(1).is_string ())
         {
-          if (args(1).is_string ())
+          std::string name = args(1).string_value ();
+
+          if (args(0).is_java ())
             {
-              std::string name = args(1).string_value ();
-
-              if (args(0).is_java ())
-                {
-                  octave_java *jobj = TO_JAVA (args(0));
-                  retval = jobj->do_java_get (current_env, name);
-                }
-              else if (args(0).is_string ())
-                {
-                  std::string cls = args(0).string_value ();
-                  retval = octave_java::do_java_get (current_env, cls, name);
-                }
-              else
-                error ("__java_get__: OBJ must be a Java object or a string");
+              octave_java *jobj = TO_JAVA (args(0));
+              retval = jobj->do_java_get (current_env, name);
+            }
+          else if (args(0).is_string ())
+            {
+              std::string cls = args(0).string_value ();
+              retval = octave_java::do_java_get (current_env, cls, name);
             }
           else
-            error ("__java_get__: NAME must be a string");
+            error ("__java_get__: OBJ must be a Java object or a string");
         }
       else
-        print_usage ();
+        error ("__java_get__: NAME must be a string");
     }
+  else
+    print_usage ();
 
   return retval;
 #else
@@ -2383,35 +2336,32 @@
 
   initialize_java ();
 
-  if (! error_state)
+  JNIEnv *current_env = octave_java::thread_jni_env ();
+
+  if (args.length () == 3)
     {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () == 3)
+      if (args(1).is_string ())
         {
-          if (args(1).is_string ())
+          std::string name = args(1).string_value ();
+
+          if (args(0).is_java ())
             {
-              std::string name = args(1).string_value ();
-
-              if (args(0).is_java ())
-                {
-                  octave_java *jobj = TO_JAVA (args(0));
-                  retval = jobj->do_java_set (current_env, name, args(2));
-                }
-              else if (args(0).is_string ())
-                {
-                  std::string cls = args(0).string_value ();
-                  retval = octave_java::do_java_set (current_env, cls, name, args(2));
-                }
-              else
-                error ("__java_set__: OBJ must be a Java object or a string");
+              octave_java *jobj = TO_JAVA (args(0));
+              retval = jobj->do_java_set (current_env, name, args(2));
+            }
+          else if (args(0).is_string ())
+            {
+              std::string cls = args(0).string_value ();
+              retval = octave_java::do_java_set (current_env, cls, name, args(2));
             }
           else
-            error ("__java_set__: NAME must be a string");
+            error ("__java_set__: OBJ must be a Java object or a string");
         }
       else
-        print_usage ();
+        error ("__java_set__: NAME must be a string");
     }
+  else
+    print_usage ();
 
   return retval;
 #else
@@ -2431,23 +2381,20 @@
 
   initialize_java ();
 
-  if (! error_state)
+  JNIEnv *current_env = octave_java::thread_jni_env ();
+
+  if (args.length () == 1)
     {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () == 1)
+      if (args(0).is_java ())
         {
-          if (args(0).is_java ())
-            {
-              octave_java *jobj = TO_JAVA (args(0));
-              retval(0) = box_more (current_env, jobj->to_java (), 0);
-            }
-          else
-            retval(0) = args(0);
+          octave_java *jobj = TO_JAVA (args(0));
+          retval(0) = box_more (current_env, jobj->to_java (), 0);
         }
       else
-        print_usage ();
+        retval(0) = args(0);
     }
+  else
+    print_usage ();
 
   return retval;
 #else