Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cython
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Gwenaël Samain
cython
Commits
81cd759d
Commit
81cd759d
authored
9 years ago
by
Stefan Behnel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean up and simplify error handling code generation in IndexNode
parent
346363f6
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
12 deletions
+11
-12
Cython/Compiler/ExprNodes.py
Cython/Compiler/ExprNodes.py
+11
-12
No files found.
Cython/Compiler/ExprNodes.py
View file @
81cd759d
...
...
@@ -3631,16 +3631,15 @@ class IndexNode(_IndexingBaseNode):
self
.
index
.
result
()),
self
.
exception_value
,
self
.
in_nogil_context
)
else
:
error_check
=
'!%s'
if
error_value
==
'NULL'
else
'%%s == %s'
%
error_value
code
.
putln
(
"%s = %s(%s, %s%s);
if (unlikely(%s == %s)) %s;
"
%
(
"%s = %s(%s, %s%s);
%s
"
%
(
self
.
result
(),
function
,
self
.
base
.
py_result
(),
index_code
,
self
.
extra_index_params
(
code
),
self
.
result
(),
error_value
,
code
.
error_goto
(
self
.
pos
)))
code
.
error_goto_if
(
error_check
%
self
.
result
(),
self
.
pos
)))
if
self
.
type
.
is_pyobject
:
code
.
put_gotref
(
self
.
py_result
())
...
...
@@ -3668,14 +3667,14 @@ class IndexNode(_IndexingBaseNode):
# (PyTuple_SetItem() is for creating new tuples from scratch).
else
:
function
=
"PyObject_SetItem"
code
.
putln
(
"
if (unlikely(%s(%s, %s, %s%s) < 0)) %s
"
%
(
code
.
putln
(
code
.
error_goto_if_neg
(
"
%s(%s, %s, %s%s)
"
%
(
function
,
self
.
base
.
py_result
(),
index_code
,
value_code
,
self
.
extra_index_params
(
code
),
code
.
error_goto
(
self
.
pos
)
))
self
.
extra_index_params
(
code
)
)
,
self
.
pos
))
def
generate_assignment_code
(
self
,
rhs
,
code
,
overloaded_assignment
=
False
,
exception_check
=
None
,
exception_value
=
None
):
...
...
@@ -3760,13 +3759,13 @@ class IndexNode(_IndexingBaseNode):
function
=
"PyDict_DelItem"
else
:
function
=
"PyObject_DelItem"
code
.
putln
(
"
if (%s(%s, %s%s) < 0) %s
"
%
(
code
.
putln
(
code
.
error_goto_if_neg
(
"
%s(%s, %s%s)
"
%
(
function
,
self
.
base
.
py_result
(),
index_code
,
self
.
extra_index_params
(
code
),
code
.
error_goto
(
self
.
pos
)
))
self
.
extra_index_params
(
code
)
)
,
self
.
pos
))
self
.
generate_subexpr_disposal_code
(
code
)
self
.
free_subexpr_temps
(
code
)
...
...
This diff is collapsed.
Click to expand it.
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