octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #61472] AddressSanitizer crash in MEX tests


From: anonymous
Subject: [Octave-bug-tracker] [bug #61472] AddressSanitizer crash in MEX tests
Date: Tue, 23 Nov 2021 04:42:35 -0500 (EST)
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:94.0) Gecko/20100101 Firefox/94.0

Follow-up Comment #4, bug #61472 (project octave):

Ah! Sorry, Something in the last post is wrong(using delete in lambda). Here
is the corrected one:


using deleter_t = void (*)(void *);

template<typename T>
class Array
{
public:
  Array (const dim_vector& dv)
  : m_data (new T[dv.safe_numel ()])
  , m_dv (dv)
  , m_deleter ([](void *p){delete[] static_cast<T *>(p);})
  {}

  Array (T *buffer, const dim_vector& dv, deleter_t del)
  : m_data (buffer) 
  , m_dv (dv)
  , m_deleter (del)
  {}

  ~Array()
  {
    m_deleter (m_data);
  }

private:
  T *m_data;
  dim_vector m_dv;
  deleter_t m_deleter;
};

// usage
double * buf = (double *) std::malloc (5 * sizeof (double));

Array<doudblr> arr (buf, dim_vector (1, 5), &std::free);



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61472>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]