Mercurial > jwe > octave
diff libinterp/octave-value/ov-mex-fcn.h @ 28130:0a88a4743096
tag mex function as supporting interleaved complex (or not)
* dynamic-ld.cc (dynamic_loader::try_load_mex): New function.
(dynamic_loader::load_mex): Call it. Check mex file for
__mx_has_interleaved_complex__ symbol and pass flag to
octave_mex_function constructor.
* ov-mex-fcn.cc (octave_mex_function::m_interleaved): New data member.
(octave_mex_function::octave_mex_function):
New arg, interleaved.
(octave_mex_function::use_interleaved_complex): New function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 18 Feb 2020 12:50:18 -0500 |
parents | bd51beb6205e |
children | b743a63e2dab |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-mex-fcn.h Tue Feb 18 12:45:45 2020 -0500 +++ b/libinterp/octave-value/ov-mex-fcn.h Tue Feb 18 12:50:18 2020 -0500 @@ -52,10 +52,12 @@ public: octave_mex_function (void) - : m_mex_fcn_ptr (), m_exit_fcn_ptr (), m_is_fmex (), m_sh_lib (), - m_time_checked (), m_is_system_fcn_file () { } + : m_mex_fcn_ptr (nullptr), m_exit_fcn_ptr (nullptr), m_sh_lib (), + m_time_checked (), m_interleaved (false), m_is_fmex (false), + m_is_system_fcn_file (false) + { } - octave_mex_function (void *fptr, bool fmex, + octave_mex_function (void *fptr, bool interleaved, bool fmex, const octave::dynamic_library& shl, const std::string& nm = ""); @@ -88,6 +90,8 @@ bool is_mex_function (void) const { return true; } + bool use_interleaved_complex (void) const { return m_interleaved; } + // We don't need to override both forms of the call method. The using // declaration will avoid warnings about partially-overloaded virtual // functions. @@ -111,14 +115,16 @@ void (*m_exit_fcn_ptr) (void); - bool m_is_fmex; - octave::dynamic_library m_sh_lib; // The time the file was last checked to see if it needs to be // parsed again. mutable octave::sys::time m_time_checked; + bool m_interleaved; + + bool m_is_fmex; + // True if this function came from a file that is considered to be a // system function. This affects whether we check the time stamp // on the file to see if it has changed.