Changeset 8308


Ignore:
Timestamp:
12/28/04 02:21:58 (17 years ago)
Author:
piso
Message:

Fixed MISC.511.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/jvm.lisp

    r8307 r8308  
    22;;;
    33;;; Copyright (C) 2003-2004 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.324 2004-12-28 02:10:52 piso Exp $
     4;;; $Id: jvm.lisp,v 1.325 2004-12-28 02:21:58 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    43534353
    43544354(defun compile-values (form &key (target *val*) representation)
    4355   (let ((new-form (rewrite-function-call form)))
    4356     (when (neq new-form form)
    4357       (return-from compile-values (compile-form new-form :target target))))
     4355;;   (let ((new-form (rewrite-function-call form)))
     4356;;     (when (neq new-form form)
     4357;;       (return-from compile-values (compile-form new-form :target target))))
    43584358  (let ((args (cdr form)))
    43594359    (case (length args)
    43604360      (1
    4361        (compile-form (car args) :target target)
    4362        (unless (single-valued-p (car args))
    4363          (emit-clear-values)))
     4361       (let ((arg (first args)))
     4362         (compile-form arg :target target)
     4363         (unless (single-valued-p arg)
     4364           (emit-clear-values))))
    43644365      (2
    43654366       (emit-push-current-thread)
    4366        (cond ((and (eq (car args) t)
    4367                    (eq (cadr args) t))
    4368               (emit-push-t)
    4369               (emit 'dup))
    4370              ((and (eq (car args) nil)
    4371                    (eq (cadr args) nil))
    4372               (emit-push-nil)
    4373               (emit 'dup))
    4374              (t
    4375               (compile-form (car args) :target :stack)
    4376               (compile-form (cadr args) :target :stack)))
     4367       (let ((arg1 (first args))
     4368             (arg2 (second args)))
     4369         (cond ((and (eq arg1 t)
     4370                     (eq arg2 t))
     4371                (emit-push-t)
     4372                (emit 'dup))
     4373               ((and (eq arg1 nil)
     4374                     (eq arg2 nil))
     4375                (emit-push-nil)
     4376                (emit 'dup))
     4377               (t
     4378                (compile-form arg1 :target :stack)
     4379                (compile-form arg2 :target :stack))))
    43774380       (emit-invokevirtual +lisp-thread-class+
    43784381                           "setValues"
Note: See TracChangeset for help on using the changeset viewer.