view examples/myprop.c @ 18791:83c85d95ac7b stable

Fix assert() segfaults with profiler (bug #39587, bug #39586). * profiler.cc (profile_data_accumulator::tree_node::exit, profile_data_accumulator::exit_function, ): Comment out assert() statements which are not valid when profile is called from within a function. * profiler.cc (F__profiler_reset__, F__profiler_data__, F__profiler_enable__): Use correct function name in Texinfo docstring. * profiler.cc (F__profiler_data__): define retval(1) first to resize return vector just once.
author Rik <rik@octave.org>
date Wed, 14 May 2014 13:59:44 -0700
parents 224e76250443
children
line wrap: on
line source

#include "mex.h"

void
mexFunction (int nlhs, mxArray* plhs[],
             int nrhs, const mxArray* prhs[])
{
  double handle;
  char property[256];

  if (nrhs < 2 || nrhs > 3)
    mexErrMsgTxt ("incorrect number of arguments");
  if (!mxIsDouble (prhs[0]))
    mexErrMsgTxt ("handle expected to be a double scalar");
  if (!mxIsChar (prhs[1]))
    mexErrMsgTxt ("expected property to be a string");

  handle = mxGetScalar (prhs[0]);
  mxGetString (prhs[1], property, 256);
  plhs[0] = mxDuplicateArray (mexGet (handle, property));

  if (nrhs == 3)
    if (mexSet (handle, property, mxDuplicateArray (prhs[2])))
      mexErrMsgTxt ("failed to set property");
}