Mercurial > octave
diff libinterp/octave-value/ov.h @ 30232:a2936935c7c8
attempt to limit possible const_cast damage
* Array.h (Array<T>::mex_get_data): Delete.
* Sparse.h (Sparse<T>::mex_get_data, Sparse<T>::mex_get_ir,
Sparse<T>::mex_get_jc): Delete.
* oct-inttypes.h (octave_int<T>::mex_get_data): Delete.
* mex.cc (mxArray_octave_value::get_data,
mxArray_octave_value::get_ir, mxArray_octave_value::get_jc):
Cast away const here, not in octave_value methods.
* ov.h, ov.cc (octave_value::mex_get_data, octave_value::mex_get_ir,
octave_value::mex_get_jc): Return const void pointer.
* ov-base.h (octave_base_value::mex_get_data,
octave_base_value::mex_get_ir, octave_base_value::mex_get_jc):
Likewise. Change all derived classes.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 07 Oct 2021 17:08:44 -0400 |
parents | c789e728d57a |
children | 91c6288781ba a61e1a0f6024 |
line wrap: on
line diff
--- a/libinterp/octave-value/ov.h Thu Oct 07 09:16:18 2021 -0700 +++ b/libinterp/octave-value/ov.h Thu Oct 07 17:08:44 2021 -0400 @@ -1478,15 +1478,23 @@ octave_base_value * internal_rep (void) const { return m_rep; } - // Unsafe. These functions exist to support the MEX interface. + // These functions exist to support the MEX interface. // You should not use them anywhere else. - OCTINTERP_API void * + + OCTINTERP_API const void * mex_get_data (mxClassID class_id = mxUNKNOWN_CLASS, mxComplexity complexity = mxREAL) const; - octave_idx_type * mex_get_ir (void) const { return m_rep->mex_get_ir (); } + const octave_idx_type * mex_get_ir (void) const + { + return m_rep->mex_get_ir (); + } - octave_idx_type * mex_get_jc (void) const { return m_rep->mex_get_jc (); } + const octave_idx_type * + mex_get_jc (void) const + { + return m_rep->mex_get_jc (); + } mxArray * as_mxArray (bool interleaved = false) const { return m_rep->as_mxArray (interleaved); }