Changeset 11323
- Timestamp:
- 09/18/08 20:48:17 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/Closure.java
r11316 r11323 412 412 if (arity == 0) 413 413 { 414 final LispThread thread = LispThread.currentThread(); 415 LispObject result = NIL; 416 LispObject prog = body; 417 while (prog != NIL) 418 { 419 result = eval(prog.car(), environment, thread); 420 prog = prog.cdr(); 421 } 422 return result; 414 return progn(body, environment, 415 LispThread.currentThread()); 423 416 } 424 417 else … … 445 438 if (auxVars != null) 446 439 bindAuxVars(ext, thread); 447 LispObject result = NIL;448 LispObject prog = body;449 440 try 450 441 { 451 while (prog != NIL) 452 { 453 result = eval(prog.car(), ext, thread); 454 prog = prog.cdr(); 455 } 442 return progn(body, ext, thread); 456 443 } 457 444 finally … … 459 446 thread.lastSpecialBinding = lastSpecialBinding; 460 447 } 461 return result;462 448 } 463 449 else … … 490 476 if (auxVars != null) 491 477 bindAuxVars(ext, thread); 492 LispObject result = NIL;493 LispObject prog = body;494 478 try 495 479 { 496 while (prog != NIL) 497 { 498 result = eval(prog.car(), ext, thread); 499 prog = prog.cdr(); 500 } 480 return progn(body, ext, thread); 501 481 } 502 482 finally … … 504 484 thread.lastSpecialBinding = lastSpecialBinding; 505 485 } 506 return result;507 486 } 508 487 else … … 538 517 if (auxVars != null) 539 518 bindAuxVars(ext, thread); 540 LispObject result = NIL;541 LispObject prog = body;542 519 try 543 520 { 544 while (prog != NIL) 545 { 546 result = eval(prog.car(), ext, thread); 547 prog = prog.cdr(); 548 } 521 return progn(body, ext, thread); 549 522 } 550 523 finally … … 552 525 thread.lastSpecialBinding = lastSpecialBinding; 553 526 } 554 return result;555 527 } 556 528 else … … 588 560 if (auxVars != null) 589 561 bindAuxVars(ext, thread); 590 LispObject result = NIL;591 LispObject prog = body;592 562 try 593 563 { 594 while (prog != NIL) 595 { 596 result = eval(prog.car(), ext, thread); 597 prog = prog.cdr(); 598 } 564 return progn(body, ext, thread); 599 565 } 600 566 finally … … 602 568 thread.lastSpecialBinding = lastSpecialBinding; 603 569 } 604 return result;605 570 } 606 571 else … … 641 606 if (auxVars != null) 642 607 bindAuxVars(ext, thread); 643 LispObject result = NIL;644 LispObject prog = body;645 608 try 646 609 { 647 while (prog != NIL) 648 { 649 result = eval(prog.car(), ext, thread); 650 prog = prog.cdr(); 651 } 610 return progn(body, ext, thread); 652 611 } 653 612 finally … … 655 614 thread.lastSpecialBinding = lastSpecialBinding; 656 615 } 657 return result;658 616 } 659 617 else … … 696 654 if (auxVars != null) 697 655 bindAuxVars(ext, thread); 698 LispObject result = NIL;699 LispObject prog = body;700 656 try 701 657 { 702 while (prog != NIL) 703 { 704 result = eval(prog.car(), ext, thread); 705 prog = prog.cdr(); 706 } 658 return progn(body, ext, thread); 707 659 } 708 660 finally … … 710 662 thread.lastSpecialBinding = lastSpecialBinding; 711 663 } 712 return result;713 664 } 714 665 else … … 754 705 if (auxVars != null) 755 706 bindAuxVars(ext, thread); 756 LispObject result = NIL;757 LispObject prog = body;758 707 try 759 708 { 760 while (prog != NIL) 761 { 762 result = eval(prog.car(), ext, thread); 763 prog = prog.cdr(); 764 } 709 return progn(body, ext, thread); 765 710 } 766 711 finally … … 768 713 thread.lastSpecialBinding = lastSpecialBinding; 769 714 } 770 return result;771 715 } 772 716 else … … 819 763 if (auxVars != null) 820 764 bindAuxVars(ext, thread); 821 LispObject result = NIL;822 LispObject prog = body;823 765 try 824 766 { 825 while (prog != NIL) 826 { 827 result = eval(prog.car(), ext, thread); 828 prog = prog.cdr(); 829 } 767 return progn(body, ext, thread); 830 768 } 831 769 finally … … 833 771 thread.lastSpecialBinding = lastSpecialBinding; 834 772 } 835 return result;836 773 } 837 774 else
Note: See TracChangeset
for help on using the changeset viewer.