mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
staticforward bites the dust.
The staticforward define was needed to support certain broken C compilers (notably SCO ODT 3.0, perhaps early AIX as well) botched the static keyword when it was used with a forward declaration of a static initialized structure. Standard C allows the forward declaration with static, and we've decided to stop catering to broken C compilers. (In fact, we expect that the compilers are all fixed eight years later.) I'm leaving staticforward and statichere defined in object.h as static. This is only for backwards compatibility with C extensions that might still use it. XXX I haven't updated the documentation.
This commit is contained in:
parent
9cb64b954a
commit
938ace69a0
61 changed files with 126 additions and 222 deletions
|
@ -1611,7 +1611,7 @@ dict_tp_clear(PyObject *op)
|
|||
}
|
||||
|
||||
|
||||
staticforward PyObject *dictiter_new(dictobject *, binaryfunc);
|
||||
static PyObject *dictiter_new(dictobject *, binaryfunc);
|
||||
|
||||
static PyObject *
|
||||
select_key(PyObject *key, PyObject *value)
|
||||
|
|
|
@ -678,7 +678,7 @@ float_float(PyObject *v)
|
|||
}
|
||||
|
||||
|
||||
staticforward PyObject *
|
||||
static PyObject *
|
||||
float_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -775,7 +775,7 @@ int_hex(PyIntObject *v)
|
|||
return PyString_FromString(buf);
|
||||
}
|
||||
|
||||
staticforward PyObject *
|
||||
static PyObject *
|
||||
int_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -1282,7 +1282,7 @@ samplesortslice(PyObject **lo, PyObject **hi, PyObject *compare)
|
|||
|
||||
#undef SETK
|
||||
|
||||
staticforward PyTypeObject immutable_list_type;
|
||||
static PyTypeObject immutable_list_type;
|
||||
|
||||
static PyObject *
|
||||
listsort(PyListObject *self, PyObject *args)
|
||||
|
|
|
@ -2199,7 +2199,8 @@ long_hex(PyObject *v)
|
|||
{
|
||||
return long_format(v, 16, 1);
|
||||
}
|
||||
staticforward PyObject *
|
||||
|
||||
static PyObject *
|
||||
long_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -163,7 +163,7 @@ static PySequenceMethods range_as_sequence = {
|
|||
0, /* sq_slice */
|
||||
};
|
||||
|
||||
staticforward PyObject * range_iter(PyObject *seq);
|
||||
static PyObject * range_iter(PyObject *seq);
|
||||
|
||||
PyTypeObject PyRange_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
|
@ -217,7 +217,7 @@ typedef struct {
|
|||
long len;
|
||||
} rangeiterobject;
|
||||
|
||||
staticforward PyTypeObject Pyrangeiter_Type;
|
||||
static PyTypeObject Pyrangeiter_Type;
|
||||
|
||||
static PyObject *
|
||||
range_iter(PyObject *seq)
|
||||
|
|
|
@ -2864,7 +2864,7 @@ string_methods[] = {
|
|||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
staticforward PyObject *
|
||||
static PyObject *
|
||||
str_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -479,7 +479,7 @@ tuplerichcompare(PyObject *v, PyObject *w, int op)
|
|||
return PyObject_RichCompare(vt->ob_item[i], wt->ob_item[i], op);
|
||||
}
|
||||
|
||||
staticforward PyObject *
|
||||
static PyObject *
|
||||
tuple_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -356,7 +356,7 @@ subtype_clear(PyObject *self)
|
|||
return 0;
|
||||
}
|
||||
|
||||
staticforward PyObject *lookup_maybe(PyObject *, char *, PyObject **);
|
||||
static PyObject *lookup_maybe(PyObject *, char *, PyObject **);
|
||||
|
||||
static int
|
||||
call_finalizer(PyObject *self)
|
||||
|
@ -469,7 +469,7 @@ subtype_dealloc(PyObject *self)
|
|||
}
|
||||
}
|
||||
|
||||
staticforward PyTypeObject *solid_base(PyTypeObject *type);
|
||||
static PyTypeObject *solid_base(PyTypeObject *type);
|
||||
|
||||
/* type test with subclassing support */
|
||||
|
||||
|
@ -894,10 +894,10 @@ solid_base(PyTypeObject *type)
|
|||
return base;
|
||||
}
|
||||
|
||||
staticforward void object_dealloc(PyObject *);
|
||||
staticforward int object_init(PyObject *, PyObject *, PyObject *);
|
||||
staticforward int update_slot(PyTypeObject *, PyObject *);
|
||||
staticforward void fixup_slot_dispatchers(PyTypeObject *);
|
||||
static void object_dealloc(PyObject *);
|
||||
static int object_init(PyObject *, PyObject *, PyObject *);
|
||||
static int update_slot(PyTypeObject *, PyObject *);
|
||||
static void fixup_slot_dispatchers(PyTypeObject *);
|
||||
|
||||
static PyObject *
|
||||
subtype_dict(PyObject *obj, void *context)
|
||||
|
@ -2187,8 +2187,8 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
|
|||
}
|
||||
}
|
||||
|
||||
staticforward int add_operators(PyTypeObject *);
|
||||
staticforward int add_subclass(PyTypeObject *base, PyTypeObject *type);
|
||||
static int add_operators(PyTypeObject *);
|
||||
static int add_subclass(PyTypeObject *base, PyTypeObject *type);
|
||||
|
||||
int
|
||||
PyType_Ready(PyTypeObject *type)
|
||||
|
@ -3118,7 +3118,7 @@ SLOT1BIN(slot_nb_divide, nb_divide, "__div__", "__rdiv__")
|
|||
SLOT1BIN(slot_nb_remainder, nb_remainder, "__mod__", "__rmod__")
|
||||
SLOT1BIN(slot_nb_divmod, nb_divmod, "__divmod__", "__rdivmod__")
|
||||
|
||||
staticforward PyObject *slot_nb_power(PyObject *, PyObject *, PyObject *);
|
||||
static PyObject *slot_nb_power(PyObject *, PyObject *, PyObject *);
|
||||
|
||||
SLOT1BINFULL(slot_nb_power_binary, slot_nb_power,
|
||||
nb_power, "__pow__", "__rpow__")
|
||||
|
@ -4013,8 +4013,8 @@ update_one_slot(PyTypeObject *type, slotdef *p)
|
|||
return p;
|
||||
}
|
||||
|
||||
staticforward int recurse_down_subclasses(PyTypeObject *type,
|
||||
slotdef **pp, PyObject *name);
|
||||
static int recurse_down_subclasses(PyTypeObject *type, slotdef **pp,
|
||||
PyObject *name);
|
||||
|
||||
/* In the type, update the slots whose slotdefs are gathered in the pp0 array,
|
||||
and then do the same for all this type's subtypes. */
|
||||
|
|
|
@ -5796,7 +5796,7 @@ static PyBufferProcs unicode_as_buffer = {
|
|||
(getcharbufferproc) unicode_buffer_getcharbuf,
|
||||
};
|
||||
|
||||
staticforward PyObject *
|
||||
static PyObject *
|
||||
unicode_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
|
||||
|
||||
static PyObject *
|
||||
|
|
|
@ -18,7 +18,7 @@ typedef struct {
|
|||
PyObject *x_attr; /* Attributes dictionary */
|
||||
} xxobject;
|
||||
|
||||
staticforward PyTypeObject Xxtype;
|
||||
static PyTypeObject Xxtype;
|
||||
|
||||
#define is_xxobject(v) ((v)->ob_type == &Xxtype)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue