Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
7c958654
Kaydet (Commit)
7c958654
authored
Nis 06, 2004
tarafından
Raymond Hettinger
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Simplify previous checkin (bitfields for WHY codes).
Restores the self-documenting enum declaration.
üst
06032cb6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
12 deletions
+14
-12
ceval.c
Python/ceval.c
+14
-12
No files found.
Python/ceval.c
Dosyayı görüntüle @
7c958654
...
...
@@ -537,15 +537,17 @@ _Py_CheckRecursiveCall(char *where)
}
/* Status code for main loop (reason for stack unwind) */
#define WHY_NOT 0x0001
#define WHY_EXCEPTION 0x0002
#define WHY_RERAISE 0x0004
#define WHY_RETURN 0x0008
#define WHY_BREAK 0x0010
#define WHY_CONTINUE 0x0020
#define WHY_YIELD 0x0040
static
int
do_raise
(
PyObject
*
,
PyObject
*
,
PyObject
*
);
enum
why_code
{
WHY_NOT
=
0x0001
,
/* No error */
WHY_EXCEPTION
=
0x0002
,
/* Exception occurred */
WHY_RERAISE
=
0x0004
,
/* Exception re-raised by 'finally' */
WHY_RETURN
=
0x0008
,
/* 'return' statement */
WHY_BREAK
=
0x0010
,
/* 'break' statement */
WHY_CONTINUE
=
0x0020
,
/* 'continue' statement */
WHY_YIELD
=
0x0040
/* 'yield' operator */
};
static
enum
why_code
do_raise
(
PyObject
*
,
PyObject
*
,
PyObject
*
);
static
int
unpack_iterable
(
PyObject
*
,
int
,
PyObject
**
);
/* for manipulating the thread switch and periodic "stuff" - used to be
...
...
@@ -578,7 +580,7 @@ eval_frame(PyFrameObject *f)
register
unsigned
char
*
next_instr
;
register
int
opcode
=
0
;
/* Current opcode */
register
int
oparg
=
0
;
/* Current opcode argument, if any */
register
int
why
;
/* Reason for block stack unwind */
register
enum
why_code
why
;
/* Reason for block stack unwind */
register
int
err
;
/* Error status -- nonzero if error */
register
PyObject
*
x
;
/* Result object -- NULL if error */
register
PyObject
*
v
;
/* Temporary objects popped off stack */
...
...
@@ -1650,7 +1652,7 @@ eval_frame(PyFrameObject *f)
case
END_FINALLY
:
v
=
POP
();
if
(
PyInt_Check
(
v
))
{
why
=
(
int
)
PyInt_AS_LONG
(
v
);
why
=
(
enum
why_code
)
PyInt_AS_LONG
(
v
);
assert
(
why
!=
WHY_YIELD
);
if
(
why
&
(
WHY_RETURN
|
WHY_CONTINUE
))
retval
=
POP
();
...
...
@@ -2834,7 +2836,7 @@ reset_exc_info(PyThreadState *tstate)
/* Logic for the raise statement (too complicated for inlining).
This *consumes* a reference count to each of its arguments. */
static
int
static
enum
why_code
do_raise
(
PyObject
*
type
,
PyObject
*
value
,
PyObject
*
tb
)
{
if
(
type
==
NULL
)
{
...
...
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