From: Raymond Hettinger Date: Tue, 3 Mar 2015 06:31:35 +0000 (-0800) Subject: Minor beautification. Move struct definitions to the top. Fix-up a comment. X-Git-Tag: v3.5.0a2~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30c9074b962052ac5542f08f799760e60763becf;p=python Minor beautification. Move struct definitions to the top. Fix-up a comment. --- diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index c39e98df9b..2546c59fcd 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -15,9 +15,9 @@ /* The block length may be set to any number over 1. Larger numbers * reduce the number of calls to the memory allocator, give faster - * indexing and rotation, and reduce the link::data overhead ratio. + * indexing and rotation, and reduce the link to data overhead ratio. * Making the block length a power of two speeds-up the modulo - * calculation in deque_item(). + * and division calculations in deque_item() and deque_ass_item(). */ #define BLOCKLEN 64 @@ -56,6 +56,19 @@ typedef struct BLOCK { struct BLOCK *rightlink; } block; +typedef struct { + PyObject_VAR_HEAD + block *leftblock; + block *rightblock; + Py_ssize_t leftindex; /* in range(BLOCKLEN) */ + Py_ssize_t rightindex; /* in range(BLOCKLEN) */ + long state; /* incremented whenever the indices move */ + Py_ssize_t maxlen; + PyObject *weakreflist; /* List of weak references */ +} dequeobject; + +static PyTypeObject deque_type; + /* For debug builds, add error checking to track the endpoints * in the chain of links. The goal is to make sure that link * assignments only take place at endpoints so that links already @@ -119,19 +132,6 @@ freeblock(block *b) } } -typedef struct { - PyObject_VAR_HEAD - block *leftblock; - block *rightblock; - Py_ssize_t leftindex; /* in range(BLOCKLEN) */ - Py_ssize_t rightindex; /* in range(BLOCKLEN) */ - long state; /* incremented whenever the indices move */ - Py_ssize_t maxlen; - PyObject *weakreflist; /* List of weak references */ -} dequeobject; - -static PyTypeObject deque_type; - /* XXX Todo: If aligned memory allocations become available, make the deque object 64 byte aligned so that all of the fields