Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • gerd's avatar
    ef829f5c
    Suppress slot access and gf-call optimizations for method · ef829f5c
    gerd authored
    	parameters that are being assigned to in the method body.
    	Reported by Hans Chalupsky on cmucl-imp.
    
    	* src/pcl/boot.lisp (method-parameter): New function, extracted
    	from make-pv-call.
    	(assigned-method-params): New function.
    	(make-method-lambda-internal): Call it to disable optimizations
    	on method parameters being assigned to.
    
    	* src/pcl/method-slot-access-optimization.lisp
    	(get-param/class-to-optimize): Use new function method-parameter.
    	* src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto.
    
    	* src/pcl/std-class.lisp (ensure-class-using-class): Don't setq
    	a method parameter.
    ef829f5c
    History
    Suppress slot access and gf-call optimizations for method
    gerd authored
    	parameters that are being assigned to in the method body.
    	Reported by Hans Chalupsky on cmucl-imp.
    
    	* src/pcl/boot.lisp (method-parameter): New function, extracted
    	from make-pv-call.
    	(assigned-method-params): New function.
    	(make-method-lambda-internal): Call it to disable optimizations
    	on method parameters being assigned to.
    
    	* src/pcl/method-slot-access-optimization.lisp
    	(get-param/class-to-optimize): Use new function method-parameter.
    	* src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto.
    
    	* src/pcl/std-class.lisp (ensure-class-using-class): Don't setq
    	a method parameter.