Skip to content

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