Fixed bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64. by vsajip · Pull Request #168 · python/cpython (original) (raw)

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation0 Commits2 Checks0 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

vsajip

Added code and test to check that when a structure passed by value
is large enough to need to be passed by reference, a copy of the
original structure is passed. The callee updates the passed-in value,
and the test verifies that the caller's copy is unchanged. A similar
change was also added to the test added for bpo-20160 (that test was
passing, but the changes should guard against regressions).

Thanks to Eryk Sun for the patch.

@vsajip

Added code and test to check that when a structure passed by value is large enough to need to be passed by reference, a copy of the original structure is passed. The callee updates the passed-in value, and the test verifies that the caller's copy is unchanged. A similar change was also added to the test added for bpo-20160 (that test was passing, but the changes should guard against regressions).

@vsajip vsajip changed the titleFixed bpo-29565: Corrected ctypes passing of large structs by value. Fixed bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64.

Feb 19, 2017

@vsajip

zooba

This was referenced

Feb 21, 2017

vsajip added a commit that referenced this pull request

Feb 22, 2017

@vsajip

…n Windows AMD64. (#168) (#221)

Fixed bpo-29565: Corrected ctypes passing of large structs by value. (cherry picked from commit a86339b)

vsajip added a commit that referenced this pull request

Feb 22, 2017

@vsajip

…n Windows AMD64. (#168) (#220)

Fixed bpo-29565: Corrected ctypes passing of large structs by value. (cherry picked from commit a86339b)

vstinner added a commit that referenced this pull request

Aug 2, 2018

@vstinner

…ows AMD64 (GH-168) (GH-8625)

Fixed bpo-29565: Corrected ctypes passing of large structs by value.

Added code and test to check that when a structure passed by value is large enough to need to be passed by reference, a copy of the original structure is passed. The callee updates the passed-in value, and the test verifies that the caller's copy is unchanged. A similar change was also added to the test added for bpo-20160 (that test was passing, but the changes should guard against regressions).

(cherry picked from commit a86339b)

akruis pushed a commit to akruis/cpython that referenced this pull request

Aug 16, 2018

… modules

Many extension modules were created by Cython versions before commit 037bcf0 and were compiled with regular C-Python. These modules call PyEval_EvalFrameEx() with a broken frame object. This commit add code to recover a broken frame in PyEval_EvalFrameEx().

akruis pushed a commit to akruis/cpython that referenced this pull request

Aug 16, 2018

… modules

Many extension modules were created by Cython versions before commit 037bcf0 and were compiled with regular C-Python. These modules call PyEval_EvalFrameEx() with a broken frame object. This commit add code to recover a broken frame in PyEval_EvalFrameEx().

akruis pushed a commit to akruis/cpython that referenced this pull request

Aug 18, 2018

… modules

Add a test case for a pathological situation.

akruis pushed a commit to akruis/cpython that referenced this pull request

Aug 18, 2018

… modules

Add a test case for a pathological situation.

akruis pushed a commit to akruis/cpython that referenced this pull request

Sep 1, 2018

… modules

Add another test case for a pathological situation.

akruis pushed a commit to akruis/cpython that referenced this pull request

Sep 3, 2018

… modules

Add another test case for a pathological situation.

akruis pushed a commit to akruis/cpython that referenced this pull request

Sep 11, 2018

… modules (python#170)

Many extension modules were created by Cython versions before commit 037bcf0 and were compiled with regular C-Python. These modules call PyEval_EvalFrameEx() with a broken frame object. This commit add code to recover a broken frame in PyEval_EvalFrameEx().

(cherry picked from commit f9094d2)

akruis pushed a commit to akruis/cpython that referenced this pull request

Oct 14, 2018

… modules (python#170)

Many extension modules were created by Cython versions before commit 037bcf0 and were compiled with regular C-Python. These modules call PyEval_EvalFrameEx() with a broken frame object. This commit add code to recover a broken frame in PyEval_EvalFrameEx().

akruis pushed a commit to akruis/cpython that referenced this pull request

Feb 18, 2019

… modules (python#169)

Many extension modules were created by Cython versions before commit 037bcf0 and were compiled with regular C-Python. These modules call PyEval_EvalFrameEx() with a broken frame object. This commit add code to recover a broken frame in PyEval_EvalFrameEx().

isidentical added a commit to isidentical/cpython that referenced this pull request

Oct 15, 2021

@isidentical

jaraco pushed a commit that referenced this pull request

Dec 2, 2022

@Mariatta

Labels

type-bug

An unexpected behavior, bug, or error