Changeset 391 for python/trunk/Modules/cgensupport.c
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Modules/cgensupport.c
r2 r391 14 14 PyArg_GetObject(register PyObject *args, int nargs, int i, PyObject **p_arg) 15 15 { 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 16 if (nargs != 1) { 17 if (args == NULL || !PyTuple_Check(args) || 18 nargs != PyTuple_Size(args) || 19 i < 0 || i >= nargs) { 20 return PyErr_BadArgument(); 21 } 22 else { 23 args = PyTuple_GetItem(args, i); 24 } 25 } 26 if (args == NULL) { 27 return PyErr_BadArgument(); 28 } 29 *p_arg = args; 30 return 1; 31 31 } 32 32 … … 34 34 PyArg_GetLong(register PyObject *args, int nargs, int i, long *p_arg) 35 35 { 36 37 38 39 40 41 42 43 44 45 46 47 48 36 if (nargs != 1) { 37 if (args == NULL || !PyTuple_Check(args) || 38 nargs != PyTuple_Size(args) || 39 i < 0 || i >= nargs) { 40 return PyErr_BadArgument(); 41 } 42 args = PyTuple_GetItem(args, i); 43 } 44 if (args == NULL || !PyInt_Check(args)) { 45 return PyErr_BadArgument(); 46 } 47 *p_arg = PyInt_AsLong(args); 48 return 1; 49 49 } 50 50 … … 52 52 PyArg_GetShort(register PyObject *args, int nargs, int i, short *p_arg) 53 53 { 54 55 56 57 58 54 long x; 55 if (!PyArg_GetLong(args, nargs, i, &x)) 56 return 0; 57 *p_arg = (short) x; 58 return 1; 59 59 } 60 60 … … 62 62 extractdouble(register PyObject *v, double *p_arg) 63 63 { 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 64 if (v == NULL) { 65 /* Fall through to error return at end of function */ 66 } 67 else if (PyFloat_Check(v)) { 68 *p_arg = PyFloat_AS_DOUBLE((PyFloatObject *)v); 69 return 1; 70 } 71 else if (PyInt_Check(v)) { 72 *p_arg = PyInt_AS_LONG((PyIntObject *)v); 73 return 1; 74 } 75 else if (PyLong_Check(v)) { 76 *p_arg = PyLong_AsDouble(v); 77 return 1; 78 } 79 return PyErr_BadArgument(); 80 80 } 81 81 … … 83 83 extractfloat(register PyObject *v, float *p_arg) 84 84 { 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 85 if (v == NULL) { 86 /* Fall through to error return at end of function */ 87 } 88 else if (PyFloat_Check(v)) { 89 *p_arg = (float) PyFloat_AS_DOUBLE((PyFloatObject *)v); 90 return 1; 91 } 92 else if (PyInt_Check(v)) { 93 *p_arg = (float) PyInt_AS_LONG((PyIntObject *)v); 94 return 1; 95 } 96 else if (PyLong_Check(v)) { 97 *p_arg = (float) PyLong_AsDouble(v); 98 return 1; 99 } 100 return PyErr_BadArgument(); 101 101 } 102 102 … … 104 104 PyArg_GetFloat(register PyObject *args, int nargs, int i, float *p_arg) 105 105 { 106 107 108 109 110 111 112 113 106 PyObject *v; 107 float x; 108 if (!PyArg_GetObject(args, nargs, i, &v)) 109 return 0; 110 if (!extractfloat(v, &x)) 111 return 0; 112 *p_arg = x; 113 return 1; 114 114 } 115 115 … … 117 117 PyArg_GetString(PyObject *args, int nargs, int i, string *p_arg) 118 118 { 119 120 121 122 123 124 125 126 119 PyObject *v; 120 if (!PyArg_GetObject(args, nargs, i, &v)) 121 return 0; 122 if (!PyString_Check(v)) { 123 return PyErr_BadArgument(); 124 } 125 *p_arg = PyString_AsString(v); 126 return 1; 127 127 } 128 128 … … 130 130 PyArg_GetChar(PyObject *args, int nargs, int i, char *p_arg) 131 131 { 132 133 134 135 136 137 138 139 140 132 string x; 133 if (!PyArg_GetString(args, nargs, i, &x)) 134 return 0; 135 if (x[0] == '\0' || x[1] != '\0') { 136 /* Not exactly one char */ 137 return PyErr_BadArgument(); 138 } 139 *p_arg = x[0]; 140 return 1; 141 141 } 142 142 … … 144 144 PyArg_GetLongArraySize(PyObject *args, int nargs, int i, long *p_arg) 145 145 { 146 147 148 149 150 151 152 153 154 155 156 157 146 PyObject *v; 147 if (!PyArg_GetObject(args, nargs, i, &v)) 148 return 0; 149 if (PyTuple_Check(v)) { 150 *p_arg = PyTuple_Size(v); 151 return 1; 152 } 153 if (PyList_Check(v)) { 154 *p_arg = PyList_Size(v); 155 return 1; 156 } 157 return PyErr_BadArgument(); 158 158 } 159 159 … … 161 161 PyArg_GetShortArraySize(PyObject *args, int nargs, int i, short *p_arg) 162 162 { 163 164 165 166 167 163 long x; 164 if (!PyArg_GetLongArraySize(args, nargs, i, &x)) 165 return 0; 166 *p_arg = (short) x; 167 return 1; 168 168 } 169 169 … … 173 173 PyArg_GetLongArray(PyObject *args, int nargs, int i, int n, long *p_arg) 174 174 { 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 175 PyObject *v, *w; 176 if (!PyArg_GetObject(args, nargs, i, &v)) 177 return 0; 178 if (PyTuple_Check(v)) { 179 if (PyTuple_Size(v) != n) { 180 return PyErr_BadArgument(); 181 } 182 for (i = 0; i < n; i++) { 183 w = PyTuple_GetItem(v, i); 184 if (!PyInt_Check(w)) { 185 return PyErr_BadArgument(); 186 } 187 p_arg[i] = PyInt_AsLong(w); 188 } 189 return 1; 190 } 191 else if (PyList_Check(v)) { 192 if (PyList_Size(v) != n) { 193 return PyErr_BadArgument(); 194 } 195 for (i = 0; i < n; i++) { 196 w = PyList_GetItem(v, i); 197 if (!PyInt_Check(w)) { 198 return PyErr_BadArgument(); 199 } 200 p_arg[i] = PyInt_AsLong(w); 201 } 202 return 1; 203 } 204 else { 205 return PyErr_BadArgument(); 206 } 207 207 } 208 208 … … 210 210 PyArg_GetShortArray(PyObject *args, int nargs, int i, int n, short *p_arg) 211 211 { 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 212 PyObject *v, *w; 213 if (!PyArg_GetObject(args, nargs, i, &v)) 214 return 0; 215 if (PyTuple_Check(v)) { 216 if (PyTuple_Size(v) != n) { 217 return PyErr_BadArgument(); 218 } 219 for (i = 0; i < n; i++) { 220 w = PyTuple_GetItem(v, i); 221 if (!PyInt_Check(w)) { 222 return PyErr_BadArgument(); 223 } 224 p_arg[i] = (short) PyInt_AsLong(w); 225 } 226 return 1; 227 } 228 else if (PyList_Check(v)) { 229 if (PyList_Size(v) != n) { 230 return PyErr_BadArgument(); 231 } 232 for (i = 0; i < n; i++) { 233 w = PyList_GetItem(v, i); 234 if (!PyInt_Check(w)) { 235 return PyErr_BadArgument(); 236 } 237 p_arg[i] = (short) PyInt_AsLong(w); 238 } 239 return 1; 240 } 241 else { 242 return PyErr_BadArgument(); 243 } 244 244 } 245 245 … … 247 247 PyArg_GetDoubleArray(PyObject *args, int nargs, int i, int n, double *p_arg) 248 248 { 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 249 PyObject *v, *w; 250 if (!PyArg_GetObject(args, nargs, i, &v)) 251 return 0; 252 if (PyTuple_Check(v)) { 253 if (PyTuple_Size(v) != n) { 254 return PyErr_BadArgument(); 255 } 256 for (i = 0; i < n; i++) { 257 w = PyTuple_GetItem(v, i); 258 if (!extractdouble(w, &p_arg[i])) 259 return 0; 260 } 261 return 1; 262 } 263 else if (PyList_Check(v)) { 264 if (PyList_Size(v) != n) { 265 return PyErr_BadArgument(); 266 } 267 for (i = 0; i < n; i++) { 268 w = PyList_GetItem(v, i); 269 if (!extractdouble(w, &p_arg[i])) 270 return 0; 271 } 272 return 1; 273 } 274 else { 275 return PyErr_BadArgument(); 276 } 277 277 } 278 278 … … 280 280 PyArg_GetFloatArray(PyObject *args, int nargs, int i, int n, float *p_arg) 281 281 { 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 } 282 PyObject *v, *w; 283 if (!PyArg_GetObject(args, nargs, i, &v)) 284 return 0; 285 if (PyTuple_Check(v)) { 286 if (PyTuple_Size(v) != n) { 287 return PyErr_BadArgument(); 288 } 289 for (i = 0; i < n; i++) { 290 w = PyTuple_GetItem(v, i); 291 if (!extractfloat(w, &p_arg[i])) 292 return 0; 293 } 294 return 1; 295 } 296 else if (PyList_Check(v)) { 297 if (PyList_Size(v) != n) { 298 return PyErr_BadArgument(); 299 } 300 for (i = 0; i < n; i++) { 301 w = PyList_GetItem(v, i); 302 if (!extractfloat(w, &p_arg[i])) 303 return 0; 304 } 305 return 1; 306 } 307 else { 308 return PyErr_BadArgument(); 309 } 310 }
Note:
See TracChangeset
for help on using the changeset viewer.