From eec89b5c4109881480e88d51f878df343a683373 Mon Sep 17 00:00:00 2001 From: pierrebressy Date: Tue, 3 May 2022 14:10:39 +0200 Subject: [PATCH] Update fm2dAniso.cpp undef the preprocess symbol add new prototype and implement function with correct types for : - mxCreateNumericArray, - mxGetDimensions and mxSetDimensions parameters, - return type mismatch with Matlab 2021a. --- matlab/toolbox_graph/mex/fm2dAniso.cpp | 35 +++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/matlab/toolbox_graph/mex/fm2dAniso.cpp b/matlab/toolbox_graph/mex/fm2dAniso.cpp index a50ecbf2..22b2434f 100644 --- a/matlab/toolbox_graph/mex/fm2dAniso.cpp +++ b/matlab/toolbox_graph/mex/fm2dAniso.cpp @@ -1,5 +1,38 @@ #include "fm2dAniso.h" +// PBR - MKR 20220503 +// old prototype in /Applications/MATLAB_R2021b.app/extern/include/matrix.h +// LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateNumericArray(mwSize ndim, const mwSize *dims, mxClassID classid, mxComplexity flag); +// type of param 2 not correct: old = const mwSize *dims new = const int dims[3] +#undef mxCreateNumericArray +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray * mxCreateNumericArray(mwSize ndim, const int dims[3], mxClassID classid, mxComplexity flag); +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray * mxCreateNumericArray(mwSize ndim, const int dims[3], mxClassID classid, mxComplexity flag){ + return mxCreateNumericArray_730(ndim,(const mwSize *)dims,classid,flag); +} + + +// PBR - MKR 20220503 +// old prototype in /Applications/MATLAB_R2021b.app/extern/include/matrix.h +// LIBMMWMATRIX_PUBLISHED_API_EXTERN_C const mwSize *mxGetDimensions(const mxArray *pa); +// type of return not correct: old = const mwSize * new = const int* +#undef mxGetDimensions +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C const int *mxGetDimensions(const mxArray *pa); +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C const int *mxGetDimensions(const mxArray *pa) { + return (const int*)mxGetDimensions_730(pa); +} + +// PBR - MKR 20220503 +// old prototype in /Applications/MATLAB_R2021b.app/extern/include/matrix.h +// LIBMMWMATRIX_PUBLISHED_API_EXTERN_C int mxSetDimensions(mxArray *pa, const mwSize *pdims, mwSize ndims); +// type of param 2 not correct: old = const mwSize *dims new = const int *dims +#undef mxSetDimensions +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C int mxSetDimensions(mxArray *pa, const int *pdims, mwSize ndims); +LIBMMWMATRIX_PUBLISHED_API_EXTERN_C int mxSetDimensions(mxArray *pa, const int *pdims, mwSize ndims) { + return mxSetDimensions_730(pa, (const mwSize *)pdims, ndims); +} + + + void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray*prhs[] ) { @@ -90,4 +123,4 @@ void mexFunction( int nlhs, mxArray *plhs[], DELETEARRAY(Trial); DELETEARRAY(Tree); return; -} \ No newline at end of file +}