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
a83a022f
Commit
a83a022f
authored
Sep 05, 2013
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Plain Diff
Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in
the _sre moduel.
parents
c56894d3
134f0de6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
14 deletions
+26
-14
Misc/NEWS
Misc/NEWS
+3
-0
Modules/_sre.c
Modules/_sre.c
+23
-14
No files found.
Misc/NEWS
View file @
a83a022f
...
...
@@ -54,6 +54,9 @@ Core and Builtins
Library
-------
- Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in
the _sre moduel.
- Issue #18830: inspect.getclasstree() no more produces duplicated entries even
when input list contains duplicates.
...
...
Modules/_sre.c
View file @
a83a022f
...
...
@@ -238,7 +238,7 @@ data_stack_grow(SRE_STATE* state, Py_ssize_t size)
if
(
cursize
<
minsize
)
{
void
*
stack
;
cursize
=
minsize
+
minsize
/
4
+
1024
;
TRACE
((
"allocate/grow stack %d
\n
"
,
cursize
));
TRACE
((
"allocate/grow stack %
"
PY_FORMAT_SIZE_T
"
d
\n
"
,
cursize
));
stack
=
PyMem_REALLOC
(
state
->
data_stack
,
cursize
);
if
(
!
stack
)
{
data_stack_dealloc
(
state
);
...
...
@@ -557,12 +557,13 @@ SRE_COUNT(SRE_STATE* state, SRE_CODE* pattern, Py_ssize_t maxcount)
if
(
!
i
)
break
;
}
TRACE
((
"|%p|%p|COUNT %d
\n
"
,
pattern
,
ptr
,
TRACE
((
"|%p|%p|COUNT %
"
PY_FORMAT_SIZE_T
"
d
\n
"
,
pattern
,
ptr
,
((
char
*
)
state
->
ptr
-
ptr
)
/
state
->
charsize
));
return
((
char
*
)
state
->
ptr
-
ptr
)
/
state
->
charsize
;
}
TRACE
((
"|%p|%p|COUNT %d
\n
"
,
pattern
,
ptr
,
(
ptr
-
(
char
*
)
state
->
ptr
)
/
state
->
charsize
));
TRACE
((
"|%p|%p|COUNT %"
PY_FORMAT_SIZE_T
"d
\n
"
,
pattern
,
ptr
,
(
ptr
-
(
char
*
)
state
->
ptr
)
/
state
->
charsize
));
return
(
ptr
-
(
char
*
)
state
->
ptr
)
/
state
->
charsize
;
}
...
...
@@ -649,7 +650,8 @@ SRE_INFO(SRE_STATE* state, SRE_CODE* pattern)
#define DATA_STACK_ALLOC(state, type, ptr) \
do { \
alloc_pos = state->data_stack_base; \
TRACE(("allocating %s in %d (%d)\n", \
TRACE(("allocating %s in %" PY_FORMAT_SIZE_T "d " \
"(%" PY_FORMAT_SIZE_T "d)\n", \
SFY(type), alloc_pos, sizeof(type))); \
if (sizeof(type) > state->data_stack_size - alloc_pos) { \
int j = data_stack_grow(state, sizeof(type)); \
...
...
@@ -663,13 +665,14 @@ do { \
#define DATA_STACK_LOOKUP_AT(state, type, ptr, pos) \
do { \
TRACE(("looking up %s at %d\n", SFY(type), pos)); \
TRACE(("looking up %s at %
" PY_FORMAT_SIZE_T "
d\n", SFY(type), pos)); \
ptr = (type*)(state->data_stack+pos); \
} while (0)
#define DATA_STACK_PUSH(state, data, size) \
do { \
TRACE(("copy data in %p to %d (%d)\n", \
TRACE(("copy data in %p to %" PY_FORMAT_SIZE_T "d " \
"(%" PY_FORMAT_SIZE_T "d)\n", \
data, state->data_stack_base, size)); \
if (size > state->data_stack_size - state->data_stack_base) { \
int j = data_stack_grow(state, size); \
...
...
@@ -683,7 +686,8 @@ do { \
#define DATA_STACK_POP(state, data, size, discard) \
do { \
TRACE(("copy data to %p from %d (%d)\n", \
TRACE(("copy data to %p from %" PY_FORMAT_SIZE_T "d " \
"(%" PY_FORMAT_SIZE_T "d)\n", \
data, state->data_stack_base-size, size)); \
memcpy(data, state->data_stack+state->data_stack_base-size, size); \
if (discard) \
...
...
@@ -692,7 +696,8 @@ do { \
#define DATA_STACK_POP_DISCARD(state, size) \
do { \
TRACE(("discard data from %d (%d)\n", \
TRACE(("discard data from %" PY_FORMAT_SIZE_T "d " \
"(%" PY_FORMAT_SIZE_T "d)\n", \
state->data_stack_base-size, size)); \
state->data_stack_base -= size; \
} while(0)
...
...
@@ -796,8 +801,10 @@ entrance:
/* optimization info block */
/* <INFO> <1=skip> <2=flags> <3=min> ... */
if
(
ctx
->
pattern
[
3
]
&&
(
Py_uintptr_t
)(
end
-
ctx
->
ptr
)
/
state
->
charsize
<
ctx
->
pattern
[
3
])
{
TRACE
((
"reject (got %d chars, need %d)
\n
"
,
(
end
-
ctx
->
ptr
)
/
state
->
charsize
,
ctx
->
pattern
[
3
]));
TRACE
((
"reject (got %"
PY_FORMAT_SIZE_T
"d chars, "
"need %"
PY_FORMAT_SIZE_T
"d)
\n
"
,
(
end
-
ctx
->
ptr
)
/
state
->
charsize
,
(
Py_ssize_t
)
ctx
->
pattern
[
3
]));
RETURN_FAILURE
;
}
ctx
->
pattern
+=
ctx
->
pattern
[
1
]
+
1
;
...
...
@@ -1173,7 +1180,7 @@ entrance:
ctx
->
count
=
ctx
->
u
.
rep
->
count
+
1
;
TRACE
((
"|%p|%p|MAX_UNTIL %d
\n
"
,
ctx
->
pattern
,
TRACE
((
"|%p|%p|MAX_UNTIL %
"
PY_FORMAT_SIZE_T
"
d
\n
"
,
ctx
->
pattern
,
ctx
->
ptr
,
ctx
->
count
));
if
(
ctx
->
count
<
(
Py_ssize_t
)
ctx
->
u
.
rep
->
pattern
[
1
])
{
...
...
@@ -1236,7 +1243,7 @@ entrance:
ctx
->
count
=
ctx
->
u
.
rep
->
count
+
1
;
TRACE
((
"|%p|%p|MIN_UNTIL %d %p
\n
"
,
ctx
->
pattern
,
TRACE
((
"|%p|%p|MIN_UNTIL %
"
PY_FORMAT_SIZE_T
"
d %p
\n
"
,
ctx
->
pattern
,
ctx
->
ptr
,
ctx
->
count
,
ctx
->
u
.
rep
->
pattern
));
if
(
ctx
->
count
<
(
Py_ssize_t
)
ctx
->
u
.
rep
->
pattern
[
1
])
{
...
...
@@ -1453,7 +1460,8 @@ exit:
TRACE
((
"|%p|%p|JUMP_ASSERT_NOT
\n
"
,
ctx
->
pattern
,
ctx
->
ptr
));
goto
jump_assert_not
;
case
JUMP_NONE
:
TRACE
((
"|%p|%p|RETURN %d
\n
"
,
ctx
->
pattern
,
ctx
->
ptr
,
ret
));
TRACE
((
"|%p|%p|RETURN %"
PY_FORMAT_SIZE_T
"d
\n
"
,
ctx
->
pattern
,
ctx
->
ptr
,
ret
));
break
;
}
...
...
@@ -1502,7 +1510,8 @@ SRE_SEARCH(SRE_STATE* state, SRE_CODE* pattern)
pattern
+=
1
+
pattern
[
1
];
}
TRACE
((
"prefix = %p %d %d
\n
"
,
prefix
,
prefix_len
,
prefix_skip
));
TRACE
((
"prefix = %p %"
PY_FORMAT_SIZE_T
"d %"
PY_FORMAT_SIZE_T
"d
\n
"
,
prefix
,
prefix_len
,
prefix_skip
));
TRACE
((
"charset = %p
\n
"
,
charset
));
#if defined(USE_FAST_SEARCH)
...
...
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