Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4e5e718

Browse filesBrowse files
author
Anselm Kruis
committed
merge 3.4-slp (Stackless python#108)
2 parents 92497cd + cf58fd3 commit 4e5e718
Copy full SHA for 4e5e718

File tree

Expand file treeCollapse file tree

8 files changed

+32
-29
lines changed
Filter options
Expand file treeCollapse file tree

8 files changed

+32
-29
lines changed

‎Stackless/changelog.txt

Copy file name to clipboardExpand all lines: Stackless/changelog.txt
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ What's New in Stackless 3.X.X?
99

1010
*Release date: 20XX-XX-XX*
1111

12+
- https://bitbucket.org/stackless-dev/stackless/issues/108
13+
Use PyVarObject_HEAD_INIT to initialise type objects. See PEP 3123.
14+
1215
- https://bitbucket.org/stackless-dev/stackless/issues/106
1316
Raise RuntimeError, if you call tasklet.setup() on a tasklet, that is
1417
already alive.

‎Stackless/core/cframeobject.c

Copy file name to clipboardExpand all lines: Stackless/core/cframeobject.c
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ static PyMemberDef cframe_memberlist[] = {
265265
};
266266

267267
PyTypeObject PyCFrame_Type = {
268-
PyObject_HEAD_INIT(&PyType_Type)
268+
PyVarObject_HEAD_INIT(&PyType_Type, 0)
269269
"_stackless.cframe",
270270
sizeof(PyCFrameObject),
271271
0,

‎Stackless/core/stacklesseval.c

Copy file name to clipboardExpand all lines: Stackless/core/stacklesseval.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ cstack_str(PyObject *o)
210210
}
211211

212212
PyTypeObject PyCStack_Type = {
213-
PyObject_HEAD_INIT(&PyType_Type)
213+
PyVarObject_HEAD_INIT(&PyType_Type, 0)
214214
"_stackless.cstack",
215215
sizeof(PyCStackObject),
216216
sizeof(PyObject *),
@@ -1037,7 +1037,7 @@ static void unwind_dealloc(PyObject *op) {
10371037
}
10381038

10391039
static PyTypeObject PyUnwindToken_Type = {
1040-
PyObject_HEAD_INIT(&PyUnwindToken_Type)
1040+
PyVarObject_HEAD_INIT(&PyUnwindToken_Type, 0)
10411041
"UnwindToken",
10421042
0,
10431043
0,

‎Stackless/module/channelobject.c

Copy file name to clipboardExpand all lines: Stackless/module/channelobject.c
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ channel_callback(PyChannelObject *channel, PyTaskletObject *task, int sending, i
350350
{
351351
PyObject *ret;
352352
PyObject *type, *value, *traceback;
353-
353+
354354
PyErr_Fetch(&type, &value, &traceback);
355355
ret = PyObject_CallFunction(channel_hook, "(OOii)", channel,
356356
task, sending, willblock);
@@ -447,7 +447,7 @@ generic_channel_action(PyChannelObject *self, PyObject *arg, int dir, int stackl
447447
if (cando)
448448
/* communication 1): there is somebody waiting */
449449
fail = generic_channel_cando(ts, &retval, self, dir, stackless);
450-
else
450+
else
451451
fail = generic_channel_block(ts, &retval, self, dir, stackless);
452452

453453
if (fail) {
@@ -512,7 +512,7 @@ generic_channel_cando(PyThreadState *ts, PyObject **result, PyChannelObject *sel
512512
}
513513

514514
oldflags = ts->st.runflags;
515-
ts->st.runflags |= runflags; /* extra info for slp_schedule_task */
515+
ts->st.runflags |= runflags; /* extra info for slp_schedule_task */
516516
fail = slp_schedule_task(result, source, switchto, stackless, &switched);
517517

518518
if (fail || !switched)
@@ -1174,7 +1174,7 @@ is resumed. If there is no waiting sender, the receiver is suspended.\
11741174
");
11751175

11761176
PyTypeObject PyChannel_Type = {
1177-
PyObject_HEAD_INIT(&PyType_Type)
1177+
PyVarObject_HEAD_INIT(&PyType_Type, 0)
11781178
"_stackless.channel",
11791179
sizeof(PyChannelObject),
11801180
0,

‎Stackless/module/scheduling.c

Copy file name to clipboardExpand all lines: Stackless/module/scheduling.c
+13-13Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ t.tempval = b\n\
266266
t.run() # let the bomb explode");
267267

268268
PyTypeObject PyBomb_Type = {
269-
PyObject_HEAD_INIT(&PyType_Type)
269+
PyVarObject_HEAD_INIT(&PyType_Type, 0)
270270
"_stackless.bomb",
271271
sizeof(PyBombObject),
272272
0,
@@ -373,7 +373,7 @@ transfer_with_exc(PyCStackObject **cstprev, PyCStackObject *cst, PyTaskletObject
373373
sm.magic2 = SAVED_TSTATE_MAGIC2;
374374

375375
/* prevent overly compiler optimisation.
376-
We store the address of sm into a global variable.
376+
We store the address of sm into a global variable.
377377
This way the optimizer can't change the layout of the structure. */
378378
_dont_optimise_away_saved_tstat_with_magic = &sm;
379379

@@ -448,7 +448,7 @@ int
448448
slp_schedule_callback(PyTaskletObject *prev, PyTaskletObject *next)
449449
{
450450
PyObject *args;
451-
451+
452452
if (prev == NULL) prev = (PyTaskletObject *)Py_None;
453453
if (next == NULL) next = (PyTaskletObject *)Py_None;
454454
args = Py_BuildValue("(OO)", prev, next);
@@ -487,7 +487,7 @@ slp_call_schedule_fasthook(PyThreadState *ts, PyTaskletObject *prev, PyTaskletOb
487487
*/
488488
tmp = ts->st.del_post_switch;
489489
ts->st.del_post_switch = NULL;
490-
490+
491491
ts->st.schedlock = 1;
492492
old_current = ts->st.current;
493493
if (prev)
@@ -738,7 +738,7 @@ static int schedule_thread_block(PyThreadState *ts)
738738
Py_END_ALLOW_THREADS
739739
ts->st.thread.is_idle = 0;
740740

741-
741+
742742
return 0;
743743
}
744744

@@ -770,7 +770,7 @@ schedule_task_block(PyObject **result, PyTaskletObject *prev, int stackless, int
770770
PyTaskletObject *next = NULL;
771771
int fail, revive_main = 0;
772772
PyTaskletObject *wakeup;
773-
773+
774774
/* which "main" do we awaken if we are blocking? */
775775
wakeup = slp_get_watchdog(ts, 0);
776776

@@ -819,7 +819,7 @@ schedule_task_block(PyObject **result, PyTaskletObject *prev, int stackless, int
819819
/* this must be after releasing the locks because of hard switching */
820820
fail = slp_schedule_task(result, prev, next, stackless, did_switch);
821821
Py_DECREF(next);
822-
822+
823823
/* Now we may have switched (on this thread), clear any post-switch stuff.
824824
* We may have a valuable "tmpval" here
825825
* because of channel switching, so be careful to maintain that.
@@ -916,7 +916,7 @@ static void slp_schedule_soft_irq(PyThreadState *ts, PyTaskletObject *prev,
916916
watchdog = slp_get_watchdog(ts, 1);
917917

918918
prev->flags.pending_irq = 0;
919-
919+
920920
if (watchdog->next != NULL)
921921
return; /* target isn't floating, we are probably raising an exception */
922922

@@ -974,7 +974,7 @@ slp_schedule_task(PyObject **result, PyTaskletObject *prev, PyTaskletObject *nex
974974
return schedule_task_block(result, prev, stackless, did_switch);
975975

976976
#ifdef WITH_THREAD
977-
/* note that next->cstate is undefined if it is ourself.
977+
/* note that next->cstate is undefined if it is ourself.
978978
Also note, that prev->cstate->tstate == NULL during Py_Finalize() */
979979
assert(prev->cstate == NULL || prev->cstate->tstate == NULL || prev->cstate->tstate == ts);
980980
/* The last condition is required during shutdown when next->cstate->tstate == NULL */
@@ -1185,7 +1185,7 @@ slp_schedule_task_prepared(PyThreadState *ts, PyObject **result, PyTaskletObject
11851185
*result = retval;
11861186

11871187
/* Now evaluate any pending pending slp_restore_tracing cframes.
1188-
They were inserted by tasklet_set_trace_function or
1188+
They were inserted by tasklet_set_trace_function or
11891189
tasklet_set_profile_function */
11901190
if (prev->cstate->nesting_level > 0) {
11911191
PyCFrameObject *f = (PyCFrameObject *)(ts->frame);
@@ -1203,7 +1203,7 @@ slp_schedule_task_prepared(PyThreadState *ts, PyObject **result, PyTaskletObject
12031203
assert(PyFrame_Check(ts->frame));
12041204
}
12051205
}
1206-
1206+
12071207
return 0;
12081208
}
12091209
else {
@@ -1218,7 +1218,7 @@ initialize_main_and_current(void)
12181218
{
12191219
PyThreadState *ts = PyThreadState_GET();
12201220
PyTaskletObject *task;
1221-
1221+
12221222
/* refuse executing main in an unhandled error context */
12231223
if (! (PyErr_Occurred() == NULL || PyErr_Occurred() == Py_None) ) {
12241224
#ifdef _DEBUG
@@ -1299,7 +1299,7 @@ schedule_task_destruct(PyObject **retval, PyTaskletObject *prev, PyTaskletObject
12991299
* nothing significant must happen once we are unwinding the stack.
13001300
*/
13011301
assert(ts->st.del_post_switch == NULL);
1302-
ts->st.del_post_switch = (PyObject*)prev;
1302+
ts->st.del_post_switch = (PyObject*)prev;
13031303
/* do a soft switch */
13041304
if (prev != next) {
13051305
int switched;

‎Stackless/module/stacklessmodule.c

Copy file name to clipboardExpand all lines: Stackless/module/stacklessmodule.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ PyDoc_STRVAR(PyAtomic_Type__doc__,
8080
current tasklet to true for the duration.\n");
8181

8282
PyTypeObject PyAtomic_Type = {
83-
PyObject_HEAD_INIT(NULL)
83+
PyVarObject_HEAD_INIT(NULL, 0)
8484
"_stackless.atomic",
8585
sizeof(PyAtomicObject),
8686
0,
@@ -1077,7 +1077,7 @@ test_nostacklesscall_call(PyObject *f, PyObject *arg, PyObject *kw)
10771077
static PyObject *get_test_nostacklesscallobj(void)
10781078
{
10791079
static PyTypeObject test_nostacklesscallType = {
1080-
PyObject_HEAD_INIT(&PyType_Type)
1080+
PyVarObject_HEAD_INIT(NULL, 0)
10811081
"_stackless.test_nostacklesscall_type", /*tp_name*/
10821082
sizeof(test_nostacklesscallObject), /*tp_basicsize*/
10831083
0, /*tp_itemsize*/

‎Stackless/module/taskletobject.c

Copy file name to clipboardExpand all lines: Stackless/module/taskletobject.c
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2138,7 +2138,7 @@ module.\n\
21382138

21392139

21402140
PyTypeObject PyTasklet_Type = {
2141-
PyObject_HEAD_INIT(&PyType_Type)
2141+
PyVarObject_HEAD_INIT(&PyType_Type, 0)
21422142
"_stackless.tasklet",
21432143
sizeof(PyTaskletObject),
21442144
0,

‎Stackless/pickling/prickelpit.c

Copy file name to clipboardExpand all lines: Stackless/pickling/prickelpit.c
+6-6Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ static PyMethodDef prefix##_methods[] = { \
136136
{NULL, NULL} \
137137
}; \
138138
\
139-
static PyTypeObject wrap_##type = { \
140-
PyObject_HEAD_INIT(&PyType_Type) \
139+
static struct _typeobject wrap_##type = { \
140+
PyVarObject_HEAD_INIT(&PyType_Type, 0) \
141141
"_stackless._wrap." name, \
142142
0, \
143143
0, \
@@ -218,7 +218,7 @@ static int init_type(PyTypeObject *t, int (*initchain)(void))
218218
return -1;
219219
/* register with copy_reg */
220220
if (pickle_reg != NULL &&
221-
(retval = PyObject_CallFunction(pickle_reg, "OO",
221+
(retval = PyObject_CallFunction(pickle_reg, "OO",
222222
t->tp_base, reduce)) == NULL)
223223
ret = -1;
224224
Py_XDECREF(retval);
@@ -892,7 +892,7 @@ frame_setstate(PyFrameObject *f, PyObject *args)
892892
Py_ssize_t tmp;
893893

894894
if (is_wrong_type(Py_TYPE(f))) return NULL;
895-
895+
896896
if (!PyArg_ParseTuple (args, frametuplesetstatefmt,
897897
&PyCode_Type, &f_code,
898898
&valid,
@@ -1469,7 +1469,7 @@ dictview_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
14691469
inst = PyObject_GC_New(dictviewobject, type->tp_base);
14701470
if (inst == NULL)
14711471
return NULL;
1472-
Py_INCREF(dict);
1472+
Py_INCREF(dict);
14731473
inst->dv_dict = (PyDictObject *)dict;
14741474
if (inst != NULL)
14751475
Py_TYPE(inst) = type;
@@ -2476,7 +2476,7 @@ init_prickelpit(void)
24762476
Py_CLEAR(types_mod);
24772477
return NULL;
24782478
}
2479-
2479+
24802480
pickle_reg = PyObject_GetAttrString(copy_reg, "pickle");
24812481
Py_DECREF(copy_reg);
24822482
if (pickle_reg == NULL) {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.