Skip to content
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 and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64. #168

Merged
merged 2 commits into from
Feb 20, 2017
Merged

Conversation

vsajip
Copy link
Member

@vsajip vsajip commented Feb 19, 2017

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.

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 title Fixed 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
@serhiy-storchaka serhiy-storchaka added the type-bug An unexpected behavior, bug, or error label Feb 19, 2017
@vsajip vsajip merged commit a86339b into python:master Feb 20, 2017
@vsajip vsajip deleted the fix-29565 branch February 20, 2017 00:16
vsajip added a commit that referenced this pull request Feb 22, 2017
…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
…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
…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
jaraco pushed a commit that referenced this pull request Dec 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants