Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit14928b3

Browse files
authored
Merge pull request#17300 from meeseeksmachine/auto-backport-of-pr-17263-on-v3.2.x
Backport PR#17263 on branch v3.2.x (you can't call CGDataProviderCreateWithData on a stack pointer)
2 parents6e3b540 +6d07be7 commit14928b3

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

‎src/_macosx.m

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1606,24 +1606,25 @@ - (void)setCanvas: (PyObject*)newCanvas
16061606

16071607
staticvoid_buffer_release(void* info,constvoid* data,size_t size) {
16081608
PyBuffer_Release((Py_buffer *)info);
1609+
free(info);
16091610
}
16101611

16111612
staticint_copy_agg_buffer(CGContextRef cr, PyObject *renderer)
16121613
{
1613-
Py_buffer buffer;
1614+
Py_buffer*buffer =malloc(sizeof(Py_buffer));
16141615

1615-
if (PyObject_GetBuffer(renderer,&buffer, PyBUF_CONTIG_RO) == -1) {
1616+
if (PyObject_GetBuffer(renderer, buffer, PyBUF_CONTIG_RO) == -1) {
16161617
PyErr_Print();
16171618
return1;
16181619
}
16191620

1620-
if (buffer.ndim !=3 || buffer.shape[2] !=4) {
1621-
PyBuffer_Release(&buffer);
1621+
if (buffer->ndim !=3 || buffer->shape[2] !=4) {
1622+
_buffer_release(buffer,NULL,0);
16221623
return1;
16231624
}
16241625

1625-
const Py_ssize_t nrows = buffer.shape[0];
1626-
const Py_ssize_t ncols = buffer.shape[1];
1626+
const Py_ssize_t nrows = buffer->shape[0];
1627+
const Py_ssize_t ncols = buffer->shape[1];
16271628
constsize_t bytesPerComponent =1;
16281629
constsize_t bitsPerComponent =8 * bytesPerComponent;
16291630
constsize_t nComponents =4;/* red, green, blue, alpha*/
@@ -1632,16 +1633,16 @@ static int _copy_agg_buffer(CGContextRef cr, PyObject *renderer)
16321633

16331634
CGColorSpaceRef colorspace =CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
16341635
if (!colorspace) {
1635-
PyBuffer_Release(&buffer);
1636+
_buffer_release(buffer,NULL,0);
16361637
return1;
16371638
}
16381639

1639-
CGDataProviderRef provider =CGDataProviderCreateWithData(&buffer,
1640-
buffer.buf,
1641-
buffer.len,
1640+
CGDataProviderRef provider =CGDataProviderCreateWithData(buffer,
1641+
buffer->buf,
1642+
buffer->len,
16421643
_buffer_release);
16431644
if (!provider) {
1644-
PyBuffer_Release(&buffer);
1645+
_buffer_release(buffer,NULL,0);
16451646
CGColorSpaceRelease(colorspace);
16461647
return1;
16471648
}
@@ -1662,7 +1663,6 @@ static int _copy_agg_buffer(CGContextRef cr, PyObject *renderer)
16621663
CGDataProviderRelease(provider);
16631664

16641665
if (!bitmap) {
1665-
PyBuffer_Release(&buffer);
16661666
return1;
16671667
}
16681668

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp