comparison Python/Python-ast.c @ 35866:9f73dc0953d2 legacy-trunk

Whoops, checkin consistent versions of *all* files to stop polluting a bunch of names
author Neal Norwitz <nnorwitz@gmail.com>
date Sun, 13 Nov 2005 19:14:20 +0000
parents 6867995a18a7
children 52f1d57f237d
comparison
equal deleted inserted replaced
35865:600bbba56f9b 35866:9f73dc0953d2
15 static int marshal_write_comprehension(PyObject **, int *, comprehension_ty); 15 static int marshal_write_comprehension(PyObject **, int *, comprehension_ty);
16 static int marshal_write_excepthandler(PyObject **, int *, excepthandler_ty); 16 static int marshal_write_excepthandler(PyObject **, int *, excepthandler_ty);
17 static int marshal_write_arguments(PyObject **, int *, arguments_ty); 17 static int marshal_write_arguments(PyObject **, int *, arguments_ty);
18 static int marshal_write_keyword(PyObject **, int *, keyword_ty); 18 static int marshal_write_keyword(PyObject **, int *, keyword_ty);
19 static int marshal_write_alias(PyObject **, int *, alias_ty); 19 static int marshal_write_alias(PyObject **, int *, alias_ty);
20
20 mod_ty 21 mod_ty
21 Module(asdl_seq * body) 22 Module(asdl_seq * body)
22 { 23 {
23 mod_ty p; 24 mod_ty p;
24 p = (mod_ty)malloc(sizeof(*p)); 25 p = (mod_ty)malloc(sizeof(*p));
1085 p->name = name; 1086 p->name = name;
1086 p->asname = asname; 1087 p->asname = asname;
1087 return p; 1088 return p;
1088 } 1089 }
1089 1090
1091
1090 static void 1092 static void
1091 free_seq_exprs(asdl_seq *seq) 1093 free_seq_exprs(asdl_seq *seq)
1092 { 1094 {
1093 int i, n; 1095 int i, n;
1094 n = asdl_seq_LEN(seq); 1096 n = asdl_seq_LEN(seq);
1104 n = asdl_seq_LEN(seq); 1106 n = asdl_seq_LEN(seq);
1105 for (i = 0; i < n; i++) 1107 for (i = 0; i < n; i++)
1106 free_stmt((stmt_ty)asdl_seq_GET(seq, i)); 1108 free_stmt((stmt_ty)asdl_seq_GET(seq, i));
1107 asdl_seq_free(seq); 1109 asdl_seq_free(seq);
1108 } 1110 }
1111
1109 1112
1110 void 1113 void
1111 free_mod(mod_ty o) 1114 free_mod(mod_ty o)
1112 { 1115 {
1113 if (!o) 1116 if (!o)
1530 Py_DECREF((identifier)o->asname); 1533 Py_DECREF((identifier)o->asname);
1531 } 1534 }
1532 1535
1533 free(o); 1536 free(o);
1534 } 1537 }
1538
1539
1540
1541 #define CHECKSIZE(BUF, OFF, MIN) { \
1542 int need = *(OFF) + MIN; \
1543 if (need >= PyString_GET_SIZE(*(BUF))) { \
1544 int newsize = PyString_GET_SIZE(*(BUF)) * 2; \
1545 if (newsize < need) \
1546 newsize = need; \
1547 if (_PyString_Resize((BUF), newsize) < 0) \
1548 return 0; \
1549 } \
1550 }
1551
1552 static int
1553 marshal_write_int(PyObject **buf, int *offset, int x)
1554 {
1555 char *s;
1556
1557 CHECKSIZE(buf, offset, 4)
1558 s = PyString_AS_STRING(*buf) + (*offset);
1559 s[0] = (x & 0xff);
1560 s[1] = (x >> 8) & 0xff;
1561 s[2] = (x >> 16) & 0xff;
1562 s[3] = (x >> 24) & 0xff;
1563 *offset += 4;
1564 return 1;
1565 }
1566
1567 static int
1568 marshal_write_bool(PyObject **buf, int *offset, bool b)
1569 {
1570 if (b)
1571 marshal_write_int(buf, offset, 1);
1572 else
1573 marshal_write_int(buf, offset, 0);
1574 return 1;
1575 }
1576
1577 static int
1578 marshal_write_identifier(PyObject **buf, int *offset, identifier id)
1579 {
1580 int l = PyString_GET_SIZE(id);
1581 marshal_write_int(buf, offset, l);
1582 CHECKSIZE(buf, offset, l);
1583 memcpy(PyString_AS_STRING(*buf) + *offset,
1584 PyString_AS_STRING(id), l);
1585 *offset += l;
1586 return 1;
1587 }
1588
1589 static int
1590 marshal_write_string(PyObject **buf, int *offset, string s)
1591 {
1592 int len = PyString_GET_SIZE(s);
1593 marshal_write_int(buf, offset, len);
1594 CHECKSIZE(buf, offset, len);
1595 memcpy(PyString_AS_STRING(*buf) + *offset,
1596 PyString_AS_STRING(s), len);
1597 *offset += len;
1598 return 1;
1599 }
1600
1601 static int
1602 marshal_write_object(PyObject **buf, int *offset, object s)
1603 {
1604 /* XXX */
1605 return 0;
1606 }
1607
1535 1608
1536 static int 1609 static int
1537 marshal_write_mod(PyObject **buf, int *off, mod_ty o) 1610 marshal_write_mod(PyObject **buf, int *off, mod_ty o)
1538 { 1611 {
1539 int i; 1612 int i;
2284 marshal_write_int(buf, off, 0); 2357 marshal_write_int(buf, off, 0);
2285 } 2358 }
2286 return 1; 2359 return 1;
2287 } 2360 }
2288 2361
2362