Mercurial > cpython-lru_cache-weakref
comparison Python/asdl.c @ 61467:f197407bdba2 3.1
Recorded merge of revisions 81032 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
................
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Sun, 09 May 2010 16:14:21 +0000 |
| parents | ac854cde3135 |
| children | f4d7ad6c9d6e |
comparison
equal
deleted
inserted
replaced
| 61459:f8c19c5f5dd2 | 61467:f197407bdba2 |
|---|---|
| 2 #include "asdl.h" | 2 #include "asdl.h" |
| 3 | 3 |
| 4 asdl_seq * | 4 asdl_seq * |
| 5 asdl_seq_new(int size, PyArena *arena) | 5 asdl_seq_new(int size, PyArena *arena) |
| 6 { | 6 { |
| 7 asdl_seq *seq = NULL; | 7 asdl_seq *seq = NULL; |
| 8 size_t n = (size ? (sizeof(void *) * (size - 1)) : 0); | 8 size_t n = (size ? (sizeof(void *) * (size - 1)) : 0); |
| 9 | 9 |
| 10 /* check size is sane */ | 10 /* check size is sane */ |
| 11 if (size < 0 || size == INT_MIN || | 11 if (size < 0 || size == INT_MIN || |
| 12 (size && ((size - 1) > (PY_SIZE_MAX / sizeof(void *))))) { | 12 (size && ((size - 1) > (PY_SIZE_MAX / sizeof(void *))))) { |
| 13 PyErr_NoMemory(); | 13 PyErr_NoMemory(); |
| 14 return NULL; | 14 return NULL; |
| 15 } | 15 } |
| 16 | 16 |
| 17 /* check if size can be added safely */ | 17 /* check if size can be added safely */ |
| 18 if (n > PY_SIZE_MAX - sizeof(asdl_seq)) { | 18 if (n > PY_SIZE_MAX - sizeof(asdl_seq)) { |
| 19 PyErr_NoMemory(); | 19 PyErr_NoMemory(); |
| 20 return NULL; | 20 return NULL; |
| 21 } | 21 } |
| 22 | 22 |
| 23 n += sizeof(asdl_seq); | 23 n += sizeof(asdl_seq); |
| 24 | 24 |
| 25 seq = (asdl_seq *)PyArena_Malloc(arena, n); | 25 seq = (asdl_seq *)PyArena_Malloc(arena, n); |
| 26 if (!seq) { | 26 if (!seq) { |
| 27 PyErr_NoMemory(); | 27 PyErr_NoMemory(); |
| 28 return NULL; | 28 return NULL; |
| 29 } | 29 } |
| 30 memset(seq, 0, n); | 30 memset(seq, 0, n); |
| 31 seq->size = size; | 31 seq->size = size; |
| 32 return seq; | 32 return seq; |
| 33 } | 33 } |
| 34 | 34 |
| 35 asdl_int_seq * | 35 asdl_int_seq * |
| 36 asdl_int_seq_new(int size, PyArena *arena) | 36 asdl_int_seq_new(int size, PyArena *arena) |
| 37 { | 37 { |
| 38 asdl_int_seq *seq = NULL; | 38 asdl_int_seq *seq = NULL; |
| 39 size_t n = (size ? (sizeof(void *) * (size - 1)) : 0); | 39 size_t n = (size ? (sizeof(void *) * (size - 1)) : 0); |
| 40 | 40 |
| 41 /* check size is sane */ | 41 /* check size is sane */ |
| 42 if (size < 0 || size == INT_MIN || | 42 if (size < 0 || size == INT_MIN || |
| 43 (size && ((size - 1) > (PY_SIZE_MAX / sizeof(void *))))) { | 43 (size && ((size - 1) > (PY_SIZE_MAX / sizeof(void *))))) { |
| 44 PyErr_NoMemory(); | 44 PyErr_NoMemory(); |
| 45 return NULL; | 45 return NULL; |
| 46 } | 46 } |
| 47 | 47 |
| 48 /* check if size can be added safely */ | 48 /* check if size can be added safely */ |
| 49 if (n > PY_SIZE_MAX - sizeof(asdl_seq)) { | 49 if (n > PY_SIZE_MAX - sizeof(asdl_seq)) { |
| 50 PyErr_NoMemory(); | 50 PyErr_NoMemory(); |
| 51 return NULL; | 51 return NULL; |
| 52 } | 52 } |
| 53 | 53 |
| 54 n += sizeof(asdl_seq); | 54 n += sizeof(asdl_seq); |
| 55 | 55 |
| 56 seq = (asdl_int_seq *)PyArena_Malloc(arena, n); | 56 seq = (asdl_int_seq *)PyArena_Malloc(arena, n); |
| 57 if (!seq) { | 57 if (!seq) { |
| 58 PyErr_NoMemory(); | 58 PyErr_NoMemory(); |
| 59 return NULL; | 59 return NULL; |
| 60 } | 60 } |
| 61 memset(seq, 0, n); | 61 memset(seq, 0, n); |
| 62 seq->size = size; | 62 seq->size = size; |
| 63 return seq; | 63 return seq; |
| 64 } | 64 } |
