MCPcopy Create free account
hub / github.com/SimpleITK/SimpleITK / sitkImageBuffer_releasebuffer

Function sitkImageBuffer_releasebuffer

Wrapping/Python/sitkImageBuffer.cxx:332–363  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

330
331#ifdef sitkImageBuffer_DEBUG
332static void
333sitkImageBuffer_releasebuffer(PyObject * exporter, Py_buffer * view)
334{
335 sitkImageBuffer * self = (sitkImageBuffer *)exporter;
336 // Debug message for buffer release
337 const sitk::Image * imagePtr = GetImageFromBuffer(self);
338 if (imagePtr)
339 {
340 const sitk::Image & image = *imagePtr;
341 std::vector<unsigned int> size = image.GetSize();
342 std::cerr << "[DEBUG] Releasing Py_buffer for image size=[";
343 for (size_t i = 0; i < size.size(); ++i)
344 {
345 if (i > 0)
346 std::cerr << ", ";
347 std::cerr << size[i];
348 }
349 std::cerr << "], ptr=" << view->buf << std::endl;
350 std::cerr.flush();
351 }
352 else
353 {
354 std::cerr << "[DEBUG] Releasing Py_buffer (no image)" << std::endl;
355 std::cerr.flush();
356 }
357
358 // Verify that view->obj is the same as self (safety check)
359 if (view->obj && view->obj != (PyObject *)self)
360 {
361 std::cerr << "[WARNING] Buffer release: view->obj != self" << std::endl;
362 }
363}
364#endif
365
366// Object life-cycle methods

Callers

nothing calls this directly

Calls 2

GetImageFromBufferFunction · 0.85
GetSizeMethod · 0.45

Tested by

no test coverage detected