comparison libinterp/corefcn/mex.cc @ 30213:27791344a45c

* mex.cc: Don't use _arg prefix for function argument names if possible.
author John W. Eaton <jwe@octave.org>
date Mon, 27 Sep 2021 16:40:26 -0400
parents c27b9ba4c9bd
children b8841fcd28c8
comparison
equal deleted inserted replaced
30212:c27b9ba4c9bd 30213:27791344a45c
1017 1017
1018 void set_m (mwSize m) { m_dims[0] = m; } 1018 void set_m (mwSize m) { m_dims[0] = m; }
1019 1019
1020 void set_n (mwSize n) { m_dims[1] = n; } 1020 void set_n (mwSize n) { m_dims[1] = n; }
1021 1021
1022 int set_dimensions (mwSize *dims_arg, mwSize ndims_arg) 1022 int set_dimensions (mwSize *dims, mwSize ndims)
1023 { 1023 {
1024 m_ndims = ndims_arg; 1024 m_ndims = ndims;
1025 1025
1026 mxFree (m_dims); 1026 mxFree (m_dims);
1027 1027
1028 if (m_ndims > 0) 1028 if (m_ndims > 0)
1029 { 1029 {
1032 1032
1033 if (m_dims == nullptr) 1033 if (m_dims == nullptr)
1034 return 1; 1034 return 1;
1035 1035
1036 for (int i = 0; i < m_ndims; i++) 1036 for (int i = 0; i < m_ndims; i++)
1037 m_dims[i] = dims_arg[i]; 1037 m_dims[i] = dims[i];
1038 1038
1039 return 0; 1039 return 0;
1040 } 1040 }
1041 else 1041 else
1042 { 1042 {
1087 // FIXME: should return the classname of user-defined objects 1087 // FIXME: should return the classname of user-defined objects
1088 default: return "unknown"; 1088 default: return "unknown";
1089 } 1089 }
1090 } 1090 }
1091 1091
1092 void set_class_name (const char *name_arg) 1092 void set_class_name (const char *name)
1093 { 1093 {
1094 mxFree (m_class_name); 1094 mxFree (m_class_name);
1095 m_class_name = static_cast<char *> (mxArray::malloc (strlen (name_arg) + 1)); 1095 m_class_name = static_cast<char *> (mxArray::malloc (strlen (name) + 1));
1096 strcpy (m_class_name, name_arg); 1096 strcpy (m_class_name, name);
1097 } 1097 }
1098 1098
1099 mxArray * get_cell (mwIndex /*idx*/) const 1099 mxArray * get_cell (mwIndex /*idx*/) const
1100 { 1100 {
1101 err_invalid_type ("get_cell"); 1101 err_invalid_type ("get_cell");
1443 } 1443 }
1444 } 1444 }
1445 1445
1446 protected: 1446 protected:
1447 1447
1448 mxArray_matlab (bool interleaved, mxClassID id_arg = mxUNKNOWN_CLASS) 1448 mxArray_matlab (bool interleaved, mxClassID id = mxUNKNOWN_CLASS)
1449 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), m_ndims (0), 1449 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (0),
1450 m_dims (nullptr) 1450 m_dims (nullptr)
1451 { } 1451 { }
1452 1452
1453 mxArray_matlab (bool interleaved, mxClassID id_arg, mwSize ndims_arg, 1453 mxArray_matlab (bool interleaved, mxClassID id, mwSize ndims,
1454 const mwSize *dims_arg) 1454 const mwSize *dims)
1455 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), 1455 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id),
1456 m_ndims (ndims_arg < 2 ? 2 : ndims_arg), 1456 m_ndims (ndims < 2 ? 2 : ndims),
1457 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) 1457 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize))))
1458 { 1458 {
1459 if (ndims_arg == 0) 1459 if (ndims == 0)
1460 { 1460 {
1461 m_dims[0] = 0; 1461 m_dims[0] = 0;
1462 m_dims[1] = 0; 1462 m_dims[1] = 0;
1463 } 1463 }
1464 else if (ndims_arg < 2) 1464 else if (ndims < 2)
1465 { 1465 {
1466 m_dims[0] = 1; 1466 m_dims[0] = 1;
1467 m_dims[1] = 1; 1467 m_dims[1] = 1;
1468 } 1468 }
1469 1469
1470 for (mwIndex i = 0; i < ndims_arg; i++) 1470 for (mwIndex i = 0; i < ndims; i++)
1471 m_dims[i] = dims_arg[i]; 1471 m_dims[i] = dims[i];
1472 1472
1473 for (mwIndex i = m_ndims - 1; i > 1; i--) 1473 for (mwIndex i = m_ndims - 1; i > 1; i--)
1474 { 1474 {
1475 if (m_dims[i] == 1) 1475 if (m_dims[i] == 1)
1476 m_ndims--; 1476 m_ndims--;
1477 else 1477 else
1478 break; 1478 break;
1479 } 1479 }
1480 } 1480 }
1481 1481
1482 mxArray_matlab (bool interleaved, mxClassID id_arg, const dim_vector& dv) 1482 mxArray_matlab (bool interleaved, mxClassID id, const dim_vector& dv)
1483 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), 1483 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id),
1484 m_ndims (dv.ndims ()), 1484 m_ndims (dv.ndims ()),
1485 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) 1485 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize))))
1486 { 1486 {
1487 for (mwIndex i = 0; i < m_ndims; i++) 1487 for (mwIndex i = 0; i < m_ndims; i++)
1488 m_dims[i] = dv(i); 1488 m_dims[i] = dv(i);
1494 else 1494 else
1495 break; 1495 break;
1496 } 1496 }
1497 } 1497 }
1498 1498
1499 mxArray_matlab (bool interleaved, mxClassID id_arg, mwSize m, mwSize n) 1499 mxArray_matlab (bool interleaved, mxClassID id, mwSize m, mwSize n)
1500 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), m_ndims (2), 1500 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (2),
1501 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) 1501 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize))))
1502 { 1502 {
1503 m_dims[0] = m; 1503 m_dims[0] = m;
1504 m_dims[1] = n; 1504 m_dims[1] = n;
1505 } 1505 }
1563 1563
1564 class mxArray_number : public mxArray_matlab 1564 class mxArray_number : public mxArray_matlab
1565 { 1565 {
1566 public: 1566 public:
1567 1567
1568 mxArray_number (bool interleaved, mxClassID id_arg, mwSize ndims_arg, 1568 mxArray_number (bool interleaved, mxClassID id, mwSize ndims,
1569 const mwSize *dims_arg, mxComplexity flag = mxREAL, 1569 const mwSize *dims, mxComplexity flag = mxREAL,
1570 bool init = true) 1570 bool init = true)
1571 : mxArray_matlab (interleaved, id_arg, ndims_arg, dims_arg), 1571 : mxArray_matlab (interleaved, id, ndims, dims),
1572 m_complex (flag == mxCOMPLEX), 1572 m_complex (flag == mxCOMPLEX),
1573 m_pr (init 1573 m_pr (init
1574 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) 1574 ? mxArray::calloc (get_number_of_elements (), get_element_size ())
1575 : mxArray::malloc (get_number_of_elements () * get_element_size ())), 1575 : mxArray::malloc (get_number_of_elements () * get_element_size ())),
1576 m_pi (m_interleaved 1576 m_pi (m_interleaved
1580 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) 1580 ? mxArray::calloc (get_number_of_elements (), get_element_size ())
1581 : mxArray::malloc (get_number_of_elements () * get_element_size ())) 1581 : mxArray::malloc (get_number_of_elements () * get_element_size ()))
1582 : nullptr)) 1582 : nullptr))
1583 { } 1583 { }
1584 1584
1585 mxArray_number (bool interleaved, mxClassID id_arg, const dim_vector& dv, 1585 mxArray_number (bool interleaved, mxClassID id, const dim_vector& dv,
1586 mxComplexity flag = mxREAL) 1586 mxComplexity flag = mxREAL)
1587 : mxArray_matlab (interleaved, id_arg, dv), m_complex (flag == mxCOMPLEX), 1587 : mxArray_matlab (interleaved, id, dv), m_complex (flag == mxCOMPLEX),
1588 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), 1588 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())),
1589 m_pi (m_interleaved 1589 m_pi (m_interleaved
1590 ? nullptr 1590 ? nullptr
1591 : (m_complex 1591 : (m_complex
1592 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) 1592 ? mxArray::calloc (get_number_of_elements (), get_element_size ())
1593 : nullptr)) 1593 : nullptr))
1594 { } 1594 { }
1595 1595
1596 mxArray_number (bool interleaved, mxClassID id_arg, mwSize m, mwSize n, 1596 mxArray_number (bool interleaved, mxClassID id, mwSize m, mwSize n,
1597 mxComplexity flag = mxREAL, bool init = true) 1597 mxComplexity flag = mxREAL, bool init = true)
1598 : mxArray_matlab (interleaved, id_arg, m, n), m_complex (flag == mxCOMPLEX), 1598 : mxArray_matlab (interleaved, id, m, n), m_complex (flag == mxCOMPLEX),
1599 m_pr (init 1599 m_pr (init
1600 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) 1600 ? mxArray::calloc (get_number_of_elements (), get_element_size ())
1601 : mxArray::malloc (get_number_of_elements () * get_element_size ())), 1601 : mxArray::malloc (get_number_of_elements () * get_element_size ())),
1602 m_pi (m_interleaved 1602 m_pi (m_interleaved
1603 ? nullptr 1603 ? nullptr
1606 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) 1606 ? mxArray::calloc (get_number_of_elements (), get_element_size ())
1607 : mxArray::malloc (get_number_of_elements () * get_element_size ())) 1607 : mxArray::malloc (get_number_of_elements () * get_element_size ()))
1608 : nullptr)) 1608 : nullptr))
1609 { } 1609 { }
1610 1610
1611 mxArray_number (bool interleaved, mxClassID id_arg, double val) 1611 mxArray_number (bool interleaved, mxClassID id, double val)
1612 : mxArray_matlab (interleaved, id_arg, 1, 1), m_complex (false), 1612 : mxArray_matlab (interleaved, id, 1, 1), m_complex (false),
1613 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), 1613 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())),
1614 m_pi (nullptr) 1614 m_pi (nullptr)
1615 { 1615 {
1616 double *dpr = static_cast<double *> (m_pr); 1616 double *dpr = static_cast<double *> (m_pr);
1617 dpr[0] = val; 1617 dpr[0] = val;
1618 } 1618 }
1619 1619
1620 mxArray_number (bool interleaved, mxClassID id_arg, mxLogical val) 1620 mxArray_number (bool interleaved, mxClassID id, mxLogical val)
1621 : mxArray_matlab (interleaved, id_arg, 1, 1), m_complex (false), 1621 : mxArray_matlab (interleaved, id, 1, 1), m_complex (false),
1622 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), 1622 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())),
1623 m_pi (nullptr) 1623 m_pi (nullptr)
1624 { 1624 {
1625 mxLogical *lpr = static_cast<mxLogical *> (m_pr); 1625 mxLogical *lpr = static_cast<mxLogical *> (m_pr);
1626 lpr[0] = val; 1626 lpr[0] = val;
2097 2097
2098 class mxArray_sparse : public mxArray_matlab 2098 class mxArray_sparse : public mxArray_matlab
2099 { 2099 {
2100 public: 2100 public:
2101 2101
2102 mxArray_sparse (bool interleaved, mxClassID id_arg, mwSize m, mwSize n, 2102 mxArray_sparse (bool interleaved, mxClassID id, mwSize m, mwSize n,
2103 mwSize nzmax_arg, mxComplexity flag = mxREAL) 2103 mwSize nzmax, mxComplexity flag = mxREAL)
2104 : mxArray_matlab (interleaved, id_arg, m, n), m_complex (flag == mxCOMPLEX), 2104 : mxArray_matlab (interleaved, id, m, n), m_complex (flag == mxCOMPLEX),
2105 2105
2106 m_nzmax (nzmax_arg > 0 ? nzmax_arg : 1), 2106 m_nzmax (nzmax > 0 ? nzmax : 1),
2107 m_pr (mxArray::calloc (m_nzmax, get_element_size ())), 2107 m_pr (mxArray::calloc (m_nzmax, get_element_size ())),
2108 m_pi (m_interleaved 2108 m_pi (m_interleaved
2109 ? nullptr 2109 ? nullptr
2110 : (m_complex 2110 : (m_complex
2111 ? mxArray::calloc (m_nzmax, get_element_size ()) 2111 ? mxArray::calloc (m_nzmax, get_element_size ())
2203 2203
2204 void set_ir (mwIndex *ir) { m_ir = ir; } 2204 void set_ir (mwIndex *ir) { m_ir = ir; }
2205 2205
2206 void set_jc (mwIndex *jc) { m_jc = jc; } 2206 void set_jc (mwIndex *jc) { m_jc = jc; }
2207 2207
2208 void set_nzmax (mwSize nzmax_arg) 2208 void set_nzmax (mwSize nzmax)
2209 { 2209 {
2210 /* Require storage for at least 1 element */ 2210 /* Require storage for at least 1 element */
2211 m_nzmax = (nzmax_arg > 0 ? nzmax_arg : 1); 2211 m_nzmax = (nzmax > 0 ? nzmax : 1);
2212 } 2212 }
2213 2213
2214 octave_value as_octave_value (void) const 2214 octave_value as_octave_value (void) const
2215 { 2215 {
2216 octave_value retval; 2216 octave_value retval;
2339 2339
2340 class mxArray_struct : public mxArray_matlab 2340 class mxArray_struct : public mxArray_matlab
2341 { 2341 {
2342 public: 2342 public:
2343 2343
2344 mxArray_struct (bool interleaved, mwSize ndims_arg, const mwSize *dims_arg, 2344 mxArray_struct (bool interleaved, mwSize ndims, const mwSize *dims,
2345 int num_keys_arg, const char **keys) 2345 int num_keys, const char **keys)
2346 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, ndims_arg, dims_arg), 2346 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, ndims, dims),
2347 m_nfields (num_keys_arg), 2347 m_nfields (num_keys),
2348 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, 2348 m_fields (static_cast<char **> (mxArray::calloc (m_nfields,
2349 sizeof (char *)))), 2349 sizeof (char *)))),
2350 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * 2350 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields *
2351 get_number_of_elements (), 2351 get_number_of_elements (),
2352 sizeof (mxArray *)))) 2352 sizeof (mxArray *))))
2353 { 2353 {
2354 init (keys); 2354 init (keys);
2355 } 2355 }
2356 2356
2357 mxArray_struct (bool interleaved, const dim_vector& dv, int num_keys_arg, 2357 mxArray_struct (bool interleaved, const dim_vector& dv, int num_keys,
2358 const char **keys) 2358 const char **keys)
2359 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, dv), 2359 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, dv),
2360 m_nfields (num_keys_arg), 2360 m_nfields (num_keys),
2361 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, 2361 m_fields (static_cast<char **> (mxArray::calloc (m_nfields,
2362 sizeof (char *)))), 2362 sizeof (char *)))),
2363 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * 2363 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields *
2364 get_number_of_elements (), 2364 get_number_of_elements (),
2365 sizeof (mxArray *)))) 2365 sizeof (mxArray *))))
2366 { 2366 {
2367 init (keys); 2367 init (keys);
2368 } 2368 }
2369 2369
2370 mxArray_struct (bool interleaved, mwSize m, mwSize n, int num_keys_arg, 2370 mxArray_struct (bool interleaved, mwSize m, mwSize n, int num_keys,
2371 const char **keys) 2371 const char **keys)
2372 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, m, n), 2372 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, m, n),
2373 m_nfields (num_keys_arg), 2373 m_nfields (num_keys),
2374 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, 2374 m_fields (static_cast<char **> (mxArray::calloc (m_nfields,
2375 sizeof (char *)))), 2375 sizeof (char *)))),
2376 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * 2376 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields *
2377 get_number_of_elements (), 2377 get_number_of_elements (),
2378 sizeof (mxArray *)))) 2378 sizeof (mxArray *))))
2609 2609
2610 class mxArray_cell : public mxArray_matlab 2610 class mxArray_cell : public mxArray_matlab
2611 { 2611 {
2612 public: 2612 public:
2613 2613
2614 mxArray_cell (bool interleaved, mwSize ndims_arg, const mwSize *dims_arg) 2614 mxArray_cell (bool interleaved, mwSize ndims, const mwSize *dims)
2615 : mxArray_matlab (interleaved, mxCELL_CLASS, ndims_arg, dims_arg), 2615 : mxArray_matlab (interleaved, mxCELL_CLASS, ndims, dims),
2616 m_data (static_cast<mxArray **> ( 2616 m_data (static_cast<mxArray **> (
2617 mxArray::calloc (get_number_of_elements (), sizeof (mxArray *)))) 2617 mxArray::calloc (get_number_of_elements (), sizeof (mxArray *))))
2618 { } 2618 { }
2619 2619
2620 mxArray_cell (bool interleaved, const dim_vector& dv) 2620 mxArray_cell (bool interleaved, const dim_vector& dv)