From 7c3d9c8320639157b6a5f95c7a7de0f76b26b0f1 Mon Sep 17 00:00:00 2001 From: Dave Goodwin Date: Thu, 14 Dec 2006 17:48:51 +0000 Subject: [PATCH] fixed minor bugs that kept toolbox from building under R2006b -- dont call mxGetPr with a char variable --. --- Cantera/matlab/cantera/private/phasemethods.cpp | 8 ++++---- Cantera/matlab/cantera/private/thermomethods.cpp | 4 +++- Cantera/matlab/setup_matlab.py.in | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Cantera/matlab/cantera/private/phasemethods.cpp b/Cantera/matlab/cantera/private/phasemethods.cpp index 582153d8f..1ebfdc6f8 100644 --- a/Cantera/matlab/cantera/private/phasemethods.cpp +++ b/Cantera/matlab/cantera/private/phasemethods.cpp @@ -14,13 +14,15 @@ bool ok = true; int status, buflen; char* input_buf; - double* ptr; + double* ptr = 0; int n, nsp, mjob, show_thermo; // methods to set attributes if (job < 0) { mjob = -job; - ptr = mxGetPr(prhs[3]); + if (mxIsChar(prhs[3]) != 1) { + ptr = mxGetPr(prhs[3]); + } m = mxGetM(prhs[3]); n = mxGetN(prhs[3]); @@ -75,10 +77,8 @@ int buflen, status; char* input_buf; if (mxIsChar(prhs[3]) == 1) { - if(mxGetM(prhs[3]) != 1) mexErrMsgTxt("Input must be a row vector."); - buflen = (mxGetM(prhs[3]) * mxGetN(prhs[3])) + 1; input_buf = (char*)mxCalloc(buflen, sizeof(char)); status = mxGetString(prhs[3], input_buf, buflen); diff --git a/Cantera/matlab/cantera/private/thermomethods.cpp b/Cantera/matlab/cantera/private/thermomethods.cpp index 14284cec7..2ab22d819 100644 --- a/Cantera/matlab/cantera/private/thermomethods.cpp +++ b/Cantera/matlab/cantera/private/thermomethods.cpp @@ -13,7 +13,9 @@ static void thermoset( int nlhs, mxArray *plhs[], double vv; int th = getInt(prhs[1]); int job = -getInt(prhs[2]); - double* ptr = mxGetPr(prhs[3]); + double* ptr = 0; + if (mxIsDouble(prhs[3]) == 1) + ptr = mxGetPr(prhs[3]); int m = mxGetM(prhs[3]); int n = mxGetN(prhs[3]); diff --git a/Cantera/matlab/setup_matlab.py.in b/Cantera/matlab/setup_matlab.py.in index 2b04c4117..86c0ef589 100644 --- a/Cantera/matlab/setup_matlab.py.in +++ b/Cantera/matlab/setup_matlab.py.in @@ -13,7 +13,7 @@ f.close() fb = open('cantera/buildux.m','w') fb.write(""" disp('building Cantera..'); -mex -v private/ctmethods.cpp private/ctfunctions.cpp ... +mex -cxx -v private/ctmethods.cpp private/ctfunctions.cpp ... private/xmlmethods.cpp private/phasemethods.cpp ... private/thermomethods.cpp private/kineticsmethods.cpp ... private/mixturemethods.cpp ...