Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
223d650
Make methodcalled thread-safe
eendebakpt Nov 23, 2024
b6d454a
check result of PyMem_Malloc
eendebakpt Nov 23, 2024
4ce1233
enable ft
eendebakpt Nov 23, 2024
cf6b79b
fix memory error
eendebakpt Nov 25, 2024
2476ce4
wip
eendebakpt Nov 28, 2024
5ecf876
add tests
eendebakpt Nov 28, 2024
709010d
wip
eendebakpt Nov 28, 2024
6bd2c2e
wip
eendebakpt Nov 28, 2024
8d40552
Merge branch 'main' into methodcaller_ft
eendebakpt Nov 28, 2024
c9e3898
wip
eendebakpt Nov 28, 2024
8ef7a04
fix memory error
eendebakpt Nov 29, 2024
b4f30d3
skip check on zero size for memcpy
eendebakpt Dec 1, 2024
6d06201
📜🤖 Added by blurb_it.
blurb-it[bot] Dec 1, 2024
56cdc1f
Merge branch 'methodcaller_ft' of github.com:eendebakpt/cpython into …
eendebakpt Dec 1, 2024
440eb0c
Merge branch 'main' into methodcaller_ft
eendebakpt Dec 1, 2024
ad66951
review comments
eendebakpt Dec 3, 2024
bc3fe2a
review comments
eendebakpt Dec 3, 2024
e9a1fa6
Update Modules/_operator.c
eendebakpt Dec 6, 2024
00ab654
Update Modules/_operator.c
eendebakpt Dec 6, 2024
5a7344b
review comments
eendebakpt Dec 6, 2024
f9f53fe
Merge branch 'methodcaller_ft' of github.com:eendebakpt/cpython into …
eendebakpt Dec 6, 2024
d208307
use strong refs
eendebakpt Dec 6, 2024
7065ec4
merge conflicts
eendebakpt Dec 6, 2024
a8655d0
cleanup
eendebakpt Dec 6, 2024
2580ae9
typo
eendebakpt Dec 6, 2024
2b8ff15
cleanup
eendebakpt Dec 7, 2024
a130d69
Add regression test for methodcaller
eendebakpt Dec 8, 2024
e636dc8
Merge branch 'main' into methodcaller_ft_v2
eendebakpt Dec 8, 2024
1b2078f
review comments
eendebakpt Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix memory error
  • Loading branch information
eendebakpt committed Nov 29, 2024
commit 8ef7a04d7f94d2a0cd63f3ae9176ca53c7a2f65b
5 changes: 3 additions & 2 deletions Modules/_operator.c
Original file line number Diff line number Diff line change
Expand Up @@ -1649,9 +1649,8 @@ static int _methodcaller_initialize_vectorcall(methodcallerobject* mc)
memcpy(mc->vectorcall_args, PySequence_Fast_ITEMS(args),
nargs * sizeof(PyObject*));
}
if (kwds) {
if (kwds && PyDict_Size(kwds)) {
const Py_ssize_t nkwds = PyDict_Size(kwds);

mc->vectorcall_kwnames = PyTuple_New(nkwds);
if (!mc->vectorcall_kwnames) {
return -1;
Expand Down Expand Up @@ -1712,6 +1711,7 @@ methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
mc->kwds = Py_XNewRef(kwds);
mc->vectorcall = NULL;
mc->vectorcall_args = NULL;
mc->vectorcall_kwnames = NULL;

Py_ssize_t vectorcall_size = PyTuple_GET_SIZE(args)
+ (kwds ? PyDict_Size(kwds) : 0);
Expand All @@ -1735,6 +1735,7 @@ methodcaller_clear(methodcallerobject *mc)
Py_CLEAR(mc->kwds);
if (mc->vectorcall_args != NULL) {
PyMem_Free(mc->vectorcall_args);
mc->vectorcall_args = NULL;
Py_CLEAR(mc->vectorcall_kwnames);
}
}
Expand Down