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 }})
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 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.
This was referenced
Feb 21, 2017
vsajip added a commit that referenced this pull request
…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
…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
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
… 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
… 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
… modules
Add a test case for a pathological situation.
akruis pushed a commit to akruis/cpython that referenced this pull request
… modules
Add a test case for a pathological situation.
akruis pushed a commit to akruis/cpython that referenced this pull request
… modules
Add another test case for a pathological situation.
akruis pushed a commit to akruis/cpython that referenced this pull request
… modules
Add another test case for a pathological situation.
akruis pushed a commit to akruis/cpython that referenced this pull request
… 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
… 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
… 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
jaraco pushed a commit that referenced this pull request
Labels
An unexpected behavior, bug, or error