Mercurial > emacs
comparison src/bytecode.c @ 90533:8a8e69664178
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 343-356)
- Update from CVS
- Update for ERC 5.1.3.
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 113-115)
- Merge from emacs--devo--0
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-90
| author | Miles Bader <miles@gnu.org> |
|---|---|
| date | Wed, 19 Jul 2006 00:42:56 +0000 |
| parents | c5406394f567 a0954041b695 |
| children | dbe3f29e61d6 |
comparison
equal
deleted
inserted
replaced
| 90532:e22cf6d2400c | 90533:8a8e69664178 |
|---|---|
| 431 abort (); | 431 abort (); |
| 432 } | 432 } |
| 433 #endif | 433 #endif |
| 434 | 434 |
| 435 CHECK_STRING (bytestr); | 435 CHECK_STRING (bytestr); |
| 436 if (!VECTORP (vector)) | 436 CHECK_VECTOR (vector); |
| 437 vector = wrong_type_argument (Qvectorp, vector); | |
| 438 CHECK_NUMBER (maxdepth); | 437 CHECK_NUMBER (maxdepth); |
| 439 | 438 |
| 440 if (STRING_MULTIBYTE (bytestr)) | 439 if (STRING_MULTIBYTE (bytestr)) |
| 441 /* BYTESTR must have been produced by Emacs 20.2 or the earlier | 440 /* BYTESTR must have been produced by Emacs 20.2 or the earlier |
| 442 because they produced a raw 8-bit string for byte-code and now | 441 because they produced a raw 8-bit string for byte-code and now |
| 540 | 539 |
| 541 case Bcar: | 540 case Bcar: |
| 542 { | 541 { |
| 543 Lisp_Object v1; | 542 Lisp_Object v1; |
| 544 v1 = TOP; | 543 v1 = TOP; |
| 545 if (CONSP (v1)) | 544 TOP = CAR (v1); |
| 546 TOP = XCAR (v1); | |
| 547 else if (NILP (v1)) | |
| 548 TOP = Qnil; | |
| 549 else | |
| 550 { | |
| 551 wrong_type_argument (Qlistp, v1); | |
| 552 } | |
| 553 break; | 545 break; |
| 554 } | 546 } |
| 555 | 547 |
| 556 case Beq: | 548 case Beq: |
| 557 { | 549 { |
| 573 | 565 |
| 574 case Bcdr: | 566 case Bcdr: |
| 575 { | 567 { |
| 576 Lisp_Object v1; | 568 Lisp_Object v1; |
| 577 v1 = TOP; | 569 v1 = TOP; |
| 578 if (CONSP (v1)) | 570 TOP = CDR (v1); |
| 579 TOP = XCDR (v1); | |
| 580 else if (NILP (v1)) | |
| 581 TOP = Qnil; | |
| 582 else | |
| 583 { | |
| 584 wrong_type_argument (Qlistp, v1); | |
| 585 } | |
| 586 break; | 571 break; |
| 587 } | 572 } |
| 588 | 573 |
| 589 case Bvarset: | 574 case Bvarset: |
| 590 case Bvarset+1: | 575 case Bvarset+1: |
| 915 v2 = TOP; | 900 v2 = TOP; |
| 916 CHECK_NUMBER (v2); | 901 CHECK_NUMBER (v2); |
| 917 AFTER_POTENTIAL_GC (); | 902 AFTER_POTENTIAL_GC (); |
| 918 op = XINT (v2); | 903 op = XINT (v2); |
| 919 immediate_quit = 1; | 904 immediate_quit = 1; |
| 920 while (--op >= 0) | 905 while (--op >= 0 && CONSP (v1)) |
| 921 { | 906 v1 = XCDR (v1); |
| 922 if (CONSP (v1)) | |
| 923 v1 = XCDR (v1); | |
| 924 else if (!NILP (v1)) | |
| 925 { | |
| 926 immediate_quit = 0; | |
| 927 wrong_type_argument (Qlistp, v1); | |
| 928 } | |
| 929 } | |
| 930 immediate_quit = 0; | 907 immediate_quit = 0; |
| 931 if (CONSP (v1)) | 908 TOP = CAR (v1); |
| 932 TOP = XCAR (v1); | |
| 933 else if (NILP (v1)) | |
| 934 TOP = Qnil; | |
| 935 else | |
| 936 wrong_type_argument (Qlistp, v1); | |
| 937 break; | 909 break; |
| 938 } | 910 } |
| 939 | 911 |
| 940 case Bsymbolp: | 912 case Bsymbolp: |
| 941 TOP = SYMBOLP (TOP) ? Qt : Qnil; | 913 TOP = SYMBOLP (TOP) ? Qt : Qnil; |
| 1561 v1 = TOP; | 1533 v1 = TOP; |
| 1562 CHECK_NUMBER (v2); | 1534 CHECK_NUMBER (v2); |
| 1563 AFTER_POTENTIAL_GC (); | 1535 AFTER_POTENTIAL_GC (); |
| 1564 op = XINT (v2); | 1536 op = XINT (v2); |
| 1565 immediate_quit = 1; | 1537 immediate_quit = 1; |
| 1566 while (--op >= 0) | 1538 while (--op >= 0 && CONSP (v1)) |
| 1567 { | 1539 v1 = XCDR (v1); |
| 1568 if (CONSP (v1)) | |
| 1569 v1 = XCDR (v1); | |
| 1570 else if (!NILP (v1)) | |
| 1571 { | |
| 1572 immediate_quit = 0; | |
| 1573 wrong_type_argument (Qlistp, v1); | |
| 1574 } | |
| 1575 } | |
| 1576 immediate_quit = 0; | 1540 immediate_quit = 0; |
| 1577 if (CONSP (v1)) | 1541 TOP = CAR (v1); |
| 1578 TOP = XCAR (v1); | |
| 1579 else if (NILP (v1)) | |
| 1580 TOP = Qnil; | |
| 1581 else | |
| 1582 wrong_type_argument (Qlistp, v1); | |
| 1583 } | 1542 } |
| 1584 else | 1543 else |
| 1585 { | 1544 { |
| 1586 BEFORE_POTENTIAL_GC (); | 1545 BEFORE_POTENTIAL_GC (); |
| 1587 v1 = POP; | 1546 v1 = POP; |
| 1639 | 1598 |
| 1640 case Bcar_safe: | 1599 case Bcar_safe: |
| 1641 { | 1600 { |
| 1642 Lisp_Object v1; | 1601 Lisp_Object v1; |
| 1643 v1 = TOP; | 1602 v1 = TOP; |
| 1644 if (CONSP (v1)) | 1603 TOP = CAR_SAFE (v1); |
| 1645 TOP = XCAR (v1); | |
| 1646 else | |
| 1647 TOP = Qnil; | |
| 1648 break; | 1604 break; |
| 1649 } | 1605 } |
| 1650 | 1606 |
| 1651 case Bcdr_safe: | 1607 case Bcdr_safe: |
| 1652 { | 1608 { |
| 1653 Lisp_Object v1; | 1609 Lisp_Object v1; |
| 1654 v1 = TOP; | 1610 v1 = TOP; |
| 1655 if (CONSP (v1)) | 1611 TOP = CDR_SAFE (v1); |
| 1656 TOP = XCDR (v1); | |
| 1657 else | |
| 1658 TOP = Qnil; | |
| 1659 break; | 1612 break; |
| 1660 } | 1613 } |
| 1661 | 1614 |
| 1662 case Bnconc: | 1615 case Bnconc: |
| 1663 BEFORE_POTENTIAL_GC (); | 1616 BEFORE_POTENTIAL_GC (); |
