# HG changeset patch # User John W. Eaton # Date 1287250038 14400 # Node ID cdf940db26a09504521fb45bf359833a684057bd # Parent 65b240770880f71260adc8e702379795256dc605 provide mxIsFunctionHandle MEX interface function diff -r 65b240770880 -r cdf940db26a0 src/ChangeLog --- a/src/ChangeLog Sat Oct 16 14:38:57 2010 +0400 +++ b/src/ChangeLog Sat Oct 16 13:27:18 2010 -0400 @@ -1,3 +1,12 @@ +2010-10-16 John W. Eaton + + * mxarray.h.in (mxArray::is_function_handle): New virtual function. + * mex.cc (mxArray_base::is_function_handle): New pure virtual function. + (mxArray_octave_value::is_function_handle): New function. + (mxArray_matlab::is_function_handle): New function. + (mxIsFunctionHandle): New function. + * mexproto.h (mxIsFunctionHandle): Provide decl. + 2010-10-14 John W. Eaton * sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc. Include diff -r 65b240770880 -r cdf940db26a0 src/mex.cc --- a/src/mex.cc Sat Oct 16 14:38:57 2010 +0400 +++ b/src/mex.cc Sat Oct 16 13:27:18 2010 -0400 @@ -141,6 +141,8 @@ int is_double (void) const = 0; + int is_function_handle (void) const = 0; + int is_int16 (void) const = 0; int is_int32 (void) const = 0; @@ -343,6 +345,8 @@ int is_double (void) const { return val.is_double_type (); } + int is_function_handle (void) const { return val.is_function_handle (); } + int is_int16 (void) const { return val.is_int16_type (); } int is_int32 (void) const { return val.is_int32_type (); } @@ -787,6 +791,8 @@ int is_double (void) const { return id == mxDOUBLE_CLASS; } + int is_function_handle (void) const { return id == mxFUNCTION_CLASS; } + int is_int16 (void) const { return id == mxINT16_CLASS; } int is_int32 (void) const { return id == mxINT32_CLASS; } @@ -2649,6 +2655,12 @@ } int +mxIsFunctionHandle (const mxArray *ptr) +{ + return ptr->is_function_handle (); +} + +int mxIsInt16 (const mxArray *ptr) { return ptr->is_int16 (); diff -r 65b240770880 -r cdf940db26a0 src/mexproto.h --- a/src/mexproto.h Sat Oct 16 14:38:57 2010 +0400 +++ b/src/mexproto.h Sat Oct 16 13:27:18 2010 -0400 @@ -146,6 +146,7 @@ extern OCTINTERP_API int mxIsClass (const mxArray *ptr, const char *name); extern OCTINTERP_API int mxIsComplex (const mxArray *ptr); extern OCTINTERP_API int mxIsDouble (const mxArray *ptr); +extern OCTINTERP_API int mxIsFunctionHandle (const mxArray *ptr); extern OCTINTERP_API int mxIsInt16 (const mxArray *ptr); extern OCTINTERP_API int mxIsInt32 (const mxArray *ptr); extern OCTINTERP_API int mxIsInt64 (const mxArray *ptr); diff -r 65b240770880 -r cdf940db26a0 src/mxarray.h.in --- a/src/mxarray.h.in Sat Oct 16 14:38:57 2010 +0400 +++ b/src/mxarray.h.in Sat Oct 16 13:27:18 2010 -0400 @@ -184,6 +184,8 @@ virtual int is_double (void) const { return rep->is_double (); } + virtual int is_function_handle (void) const { return rep->is_function_handle (); } + virtual int is_int16 (void) const { return rep->is_int16 (); } virtual int is_int32 (void) const { return rep->is_int32 (); }