Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
ceeef10c
Commit
ceeef10c
authored
Jun 15, 2018
by
Serhiy Storchaka
Committed by
GitHub
Jun 15, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-33818: PyExceptionClass_Name() will now return "const char *". (GH-7581)
parent
08f127a3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
14 additions
and
9 deletions
+14
-9
Doc/whatsnew/3.8.rst
Doc/whatsnew/3.8.rst
+4
-0
Include/pyerrors.h
Include/pyerrors.h
+2
-3
Misc/NEWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst
...EWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst
+2
-0
Objects/exceptions.c
Objects/exceptions.c
+2
-2
Python/errors.c
Python/errors.c
+2
-2
Python/pythonrun.c
Python/pythonrun.c
+2
-2
No files found.
Doc/whatsnew/3.8.rst
View file @
ceeef10c
...
...
@@ -115,9 +115,13 @@ Optimizations
first introduced in Python 3.4. It offers better performance and smaller
size compared to Protocol 3 available since Python 3.0.
Build and C API Changes
=======================
* The result of :c:func:`PyExceptionClass_Name` is now of type
``const char *`` rather of ``char *``.
(Contributed by Serhiy Storchaka in :issue:`33818`.)
Deprecated
...
...
Include/pyerrors.h
View file @
ceeef10c
...
...
@@ -140,10 +140,9 @@ PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
#define PyExceptionInstance_Check(x) \
PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS)
PyAPI_FUNC
(
char
*
)
PyExceptionClass_Name
(
PyObject
*
);
PyAPI_FUNC
(
c
onst
c
har
*
)
PyExceptionClass_Name
(
PyObject
*
);
#ifndef Py_LIMITED_API
#define PyExceptionClass_Name(x) \
((char *)(((PyTypeObject *)(x))->tp_name))
#define PyExceptionClass_Name(x) (((PyTypeObject*)(x))->tp_name)
#endif
#define PyExceptionInstance_Class(x) ((PyObject*)((x)->ob_type))
...
...
Misc/NEWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst
0 → 100644
View file @
ceeef10c
:c:func:`PyExceptionClass_Name` will now return ``const char *`` instead of
``char *``.
Objects/exceptions.c
View file @
ceeef10c
...
...
@@ -344,10 +344,10 @@ PyException_SetContext(PyObject *self, PyObject *context)
#undef PyExceptionClass_Name
char
*
c
onst
c
har
*
PyExceptionClass_Name
(
PyObject
*
ob
)
{
return
(
char
*
)(
(
PyTypeObject
*
)
ob
)
->
tp_name
;
return
((
PyTypeObject
*
)
ob
)
->
tp_name
;
}
static
struct
PyMemberDef
BaseException_members
[]
=
{
...
...
Python/errors.c
View file @
ceeef10c
...
...
@@ -947,7 +947,7 @@ PyErr_WriteUnraisable(PyObject *obj)
_Py_IDENTIFIER
(
__module__
);
PyObject
*
f
,
*
t
,
*
v
,
*
tb
;
PyObject
*
moduleName
=
NULL
;
c
har
*
className
;
c
onst
char
*
className
;
PyErr_Fetch
(
&
t
,
&
v
,
&
tb
);
...
...
@@ -977,7 +977,7 @@ PyErr_WriteUnraisable(PyObject *obj)
assert
(
PyExceptionClass_Check
(
t
));
className
=
PyExceptionClass_Name
(
t
);
if
(
className
!=
NULL
)
{
char
*
dot
=
strrchr
(
className
,
'.'
);
c
onst
c
har
*
dot
=
strrchr
(
className
,
'.'
);
if
(
dot
!=
NULL
)
className
=
dot
+
1
;
}
...
...
Python/pythonrun.c
View file @
ceeef10c
...
...
@@ -774,12 +774,12 @@ print_exception(PyObject *f, PyObject *value)
}
else
{
PyObject
*
moduleName
;
c
har
*
className
;
c
onst
char
*
className
;
_Py_IDENTIFIER
(
__module__
);
assert
(
PyExceptionClass_Check
(
type
));
className
=
PyExceptionClass_Name
(
type
);
if
(
className
!=
NULL
)
{
char
*
dot
=
strrchr
(
className
,
'.'
);
c
onst
c
har
*
dot
=
strrchr
(
className
,
'.'
);
if
(
dot
!=
NULL
)
className
=
dot
+
1
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment