# HG changeset patch # User Jaroslav Hajek # Date 1242821611 -7200 # Node ID 902a4597dce8cac64f8dca117454f7c5be3bc0f9 # Parent 7bd406e12e4ded29ea4281627a29cf6734e6e691 use Array in ov-typeinfo.h diff -r 7bd406e12e4d -r 902a4597dce8 src/ChangeLog --- a/src/ChangeLog Wed May 20 14:08:13 2009 +0200 +++ b/src/ChangeLog Wed May 20 14:13:31 2009 +0200 @@ -1,3 +1,21 @@ +2009-05-20 Jaroslav Hajek + + * ov-typeinfo.h + (octave_value_typeinfo::unary_class_ops, + octave_value_typeinfo::unary_ops, + octave_value_typeinfo::non_const_unary_ops, + octave_value_typeinfo::binary_class_ops, + octave_value_typeinfo::binary_ops, + octave_value_typeinfo::compound_binary_class_ops, + octave_value_typeinfo::compound_binary_ops, + octave_value_typeinfo::cat_ops, + octave_value_typeinfo::assign_ops, + octave_value_typeinfo::assignany_ops, + octave_value_typeinfo::pref_assign_conv, + octave_value_typeinfo::type_conv_ops, + octave_value_typeinfo::widening_ops): Declare as Array. + * ov-typeinfo.cc: Reflect changes. + 2009-05-20 Jaroslav Hajek * toplev.h (octave_exit_func): New typedef. diff -r 7bd406e12e4d -r 902a4597dce8 src/ov-typeinfo.cc --- a/src/ov-typeinfo.cc Wed May 20 14:08:13 2009 +0200 +++ b/src/ov-typeinfo.cc Wed May 20 14:13:31 2009 +0200 @@ -40,38 +40,6 @@ #include #include -#include - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::unary_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::unary_op_fcn, ); -template class Array2; - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::non_const_unary_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::non_const_unary_op_fcn, ); -template class Array2; - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::binary_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::binary_op_fcn, ); -template class Array2; -template class Array3; - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::cat_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::cat_op_fcn, ); -template class Array2; - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::assign_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::assign_op_fcn, ); -template class Array2; -template class Array3; - -NO_INSTANTIATE_ARRAY_SORT (octave_value_typeinfo::assignany_op_fcn); -INSTANTIATE_ARRAY (octave_value_typeinfo::assignany_op_fcn, ); -template class Array2; - -NO_INSTANTIATE_ARRAY_SORT (octave_base_value::type_conv_fcn); -INSTANTIATE_ARRAY (octave_base_value::type_conv_fcn, ); -template class Array2; - bool octave_value_typeinfo::instance_ok (void) { @@ -229,32 +197,28 @@ vals.resize (len, octave_value ()); - unary_ops.resize (static_cast (octave_value::num_unary_ops), - len, static_cast (0)); + unary_ops.resize (static_cast (octave_value::num_unary_ops), len, 0); non_const_unary_ops.resize - (static_cast (octave_value::num_unary_ops), - len, static_cast (0)); + (static_cast (octave_value::num_unary_ops), len, 0); binary_ops.resize (static_cast (octave_value::num_binary_ops), - len, len, static_cast (0)); + len, len, 0); compound_binary_ops.resize (static_cast (octave_value::num_compound_binary_ops), - len, len, static_cast (0)); + len, len, 0); - cat_ops.resize (len, len, static_cast (0)); + cat_ops.resize (len, len, 0); - assign_ops.resize (static_cast (octave_value::num_assign_ops), - len, len, static_cast (0)); + assign_ops.resize (static_cast (octave_value::num_assign_ops), len, len, 0); - assignany_ops.resize (static_cast (octave_value::num_assign_ops), - len, static_cast (0)); + assignany_ops.resize (static_cast (octave_value::num_assign_ops), len, 0); pref_assign_conv.resize (len, len, -1); - type_conv_ops.resize (len, len, static_cast (0)); + type_conv_ops.resize (len, len, 0); - widening_ops.resize (len, len, static_cast (0)); + widening_ops.resize (len, len, 0); } types (i) = t_name; @@ -278,7 +242,7 @@ op_name.c_str ()); } - unary_class_ops.checkelem (static_cast (op)) = f; + unary_class_ops.checkelem (static_cast (op)) = reinterpret_cast (f); return false; } @@ -296,7 +260,7 @@ op_name.c_str (), type_name.c_str ()); } - unary_ops.checkelem (static_cast (op), t) = f; + unary_ops.checkelem (static_cast (op), t) = reinterpret_cast (f); return false; } @@ -314,7 +278,7 @@ op_name.c_str (), type_name.c_str ()); } - non_const_unary_ops.checkelem (static_cast (op), t) = f; + non_const_unary_ops.checkelem (static_cast (op), t) = reinterpret_cast (f); return false; } @@ -331,7 +295,7 @@ op_name.c_str ()); } - binary_class_ops.checkelem (static_cast (op)) = f; + binary_class_ops.checkelem (static_cast (op)) = reinterpret_cast (f); return false; } @@ -351,7 +315,7 @@ op_name.c_str (), t1_name.c_str (), t1_name.c_str ()); } - binary_ops.checkelem (static_cast (op), t1, t2) = f; + binary_ops.checkelem (static_cast (op), t1, t2) = reinterpret_cast (f); return false; } @@ -368,7 +332,7 @@ op_name.c_str ()); } - compound_binary_class_ops.checkelem (static_cast (op)) = f; + compound_binary_class_ops.checkelem (static_cast (op)) = reinterpret_cast (f); return false; } @@ -388,7 +352,7 @@ op_name.c_str (), t1_name.c_str (), t1_name.c_str ()); } - compound_binary_ops.checkelem (static_cast (op), t1, t2) = f; + compound_binary_ops.checkelem (static_cast (op), t1, t2) = reinterpret_cast (f); return false; } @@ -405,7 +369,7 @@ t1_name.c_str (), t1_name.c_str ()); } - cat_ops.checkelem (t1, t2) = f; + cat_ops.checkelem (t1, t2) = reinterpret_cast (f); return false; } @@ -425,7 +389,7 @@ op_name.c_str (), t_lhs_name.c_str (), t_rhs_name.c_str ()); } - assign_ops.checkelem (static_cast (op), t_lhs, t_rhs) = f; + assign_ops.checkelem (static_cast (op), t_lhs, t_rhs) = reinterpret_cast (f); return false; } @@ -443,7 +407,7 @@ op_name.c_str (), t_lhs_name.c_str ()); } - assignany_ops.checkelem (static_cast (op), t_lhs) = f; + assignany_ops.checkelem (static_cast (op), t_lhs) = reinterpret_cast (f); return false; } @@ -479,7 +443,7 @@ t_name.c_str (), t_result_name.c_str ()); } - type_conv_ops.checkelem (t, t_result) = f; + type_conv_ops.checkelem (t, t_result) = reinterpret_cast (f); return false; } @@ -497,7 +461,7 @@ t_name.c_str (), t_result_name.c_str ()); } - widening_ops.checkelem (t, t_result) = f; + widening_ops.checkelem (t, t_result) = reinterpret_cast (f); return false; } @@ -523,66 +487,76 @@ octave_value_typeinfo::unary_class_op_fcn octave_value_typeinfo::do_lookup_unary_class_op (octave_value::unary_op op) { - return unary_class_ops.checkelem (static_cast (op)); + void *f = unary_class_ops.checkelem (static_cast (op)); + return reinterpret_cast (f); } octave_value_typeinfo::unary_op_fcn octave_value_typeinfo::do_lookup_unary_op (octave_value::unary_op op, int t) { - return unary_ops.checkelem (static_cast (op), t); + void *f = unary_ops.checkelem (static_cast (op), t); + return reinterpret_cast (f); } octave_value_typeinfo::non_const_unary_op_fcn octave_value_typeinfo::do_lookup_non_const_unary_op (octave_value::unary_op op, int t) { - return non_const_unary_ops.checkelem (static_cast (op), t); + void *f = non_const_unary_ops.checkelem (static_cast (op), t); + return reinterpret_cast (f); } octave_value_typeinfo::binary_class_op_fcn octave_value_typeinfo::do_lookup_binary_class_op (octave_value::binary_op op) { - return binary_class_ops.checkelem (static_cast (op)); + void *f = binary_class_ops.checkelem (static_cast (op)); + return reinterpret_cast (f); } octave_value_typeinfo::binary_op_fcn octave_value_typeinfo::do_lookup_binary_op (octave_value::binary_op op, int t1, int t2) { - return binary_ops.checkelem (static_cast (op), t1, t2); + void *f = binary_ops.checkelem (static_cast (op), t1, t2); + return reinterpret_cast (f); } octave_value_typeinfo::binary_class_op_fcn octave_value_typeinfo::do_lookup_binary_class_op (octave_value::compound_binary_op op) { - return compound_binary_class_ops.checkelem (static_cast (op)); + void *f = compound_binary_class_ops.checkelem (static_cast (op)); + return reinterpret_cast (f); } octave_value_typeinfo::binary_op_fcn octave_value_typeinfo::do_lookup_binary_op (octave_value::compound_binary_op op, int t1, int t2) { - return compound_binary_ops.checkelem (static_cast (op), t1, t2); + void *f = compound_binary_ops.checkelem (static_cast (op), t1, t2); + return reinterpret_cast (f); } octave_value_typeinfo::cat_op_fcn octave_value_typeinfo::do_lookup_cat_op (int t1, int t2) { - return cat_ops.checkelem (t1, t2); + void *f = cat_ops.checkelem (t1, t2); + return reinterpret_cast (f); } octave_value_typeinfo::assign_op_fcn octave_value_typeinfo::do_lookup_assign_op (octave_value::assign_op op, int t_lhs, int t_rhs) { - return assign_ops.checkelem (static_cast (op), t_lhs, t_rhs); + void *f = assign_ops.checkelem (static_cast (op), t_lhs, t_rhs); + return reinterpret_cast (f); } octave_value_typeinfo::assignany_op_fcn octave_value_typeinfo::do_lookup_assignany_op (octave_value::assign_op op, int t_lhs) { - return assignany_ops.checkelem (static_cast (op), t_lhs); + void *f = assignany_ops.checkelem (static_cast (op), t_lhs); + return reinterpret_cast (f); } int @@ -594,13 +568,15 @@ octave_base_value::type_conv_fcn octave_value_typeinfo::do_lookup_type_conv_op (int t, int t_result) { - return type_conv_ops.checkelem (t, t_result); + void *f = type_conv_ops.checkelem (t, t_result); + return reinterpret_cast (f); } octave_base_value::type_conv_fcn octave_value_typeinfo::do_lookup_widening_op (int t, int t_result) { - return widening_ops.checkelem (t, t_result); + void *f = widening_ops.checkelem (t, t_result); + return reinterpret_cast (f); } string_vector diff -r 7bd406e12e4d -r 902a4597dce8 src/ov-typeinfo.h --- a/src/ov-typeinfo.h Wed May 20 14:08:13 2009 +0200 +++ b/src/ov-typeinfo.h Wed May 20 14:13:31 2009 +0200 @@ -220,31 +220,31 @@ Array vals; - Array unary_class_ops; + Array unary_class_ops; - Array2 unary_ops; + Array2 unary_ops; - Array2 non_const_unary_ops; + Array2 non_const_unary_ops; - Array binary_class_ops; + Array binary_class_ops; - Array3 binary_ops; + Array3 binary_ops; - Array compound_binary_class_ops; + Array compound_binary_class_ops; - Array3 compound_binary_ops; + Array3 compound_binary_ops; - Array2 cat_ops; + Array2 cat_ops; - Array3 assign_ops; + Array3 assign_ops; - Array2 assignany_ops; + Array2 assignany_ops; Array2 pref_assign_conv; - Array2 type_conv_ops; + Array2 type_conv_ops; - Array2 widening_ops; + Array2 widening_ops; int do_register_type (const std::string&, const std::string&, const octave_value&);