[PD-cvs] pd/src poe.tcl,1.1.2.2.2.3,1.1.2.2.2.4

Mathieu Bouchard matju at users.sourceforge.net
Wed Dec 6 19:57:32 CET 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19492

Modified Files:
      Tag: desiredata
	poe.tcl 
Log Message:
super small dispatcher


Index: poe.tcl
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/poe.tcl,v
retrieving revision 1.1.2.2.2.3
retrieving revision 1.1.2.2.2.4
diff -C2 -d -r1.1.2.2.2.3 -r1.1.2.2.2.4
*** poe.tcl	6 Dec 2006 18:29:00 -0000	1.1.2.2.2.3
--- poe.tcl	6 Dec 2006 18:57:30 -0000	1.1.2.2.2.4
***************
*** 101,115 ****
  }
  
! set dispatch {
  	global _ __
! 	set i 0; set methods {}; set class $_($self:_class); set self $self
! 	if {[catch {set methods $__($class:$selector)}]} {
! 		set ancestors {}
! 		lookup_method $class $selector methods ancestors
! 		set __($class:$selector) $methods
! 	}
! 	if {![llength $methods]} {
! 		error "no such method '$selector' for object '$self'\nwith ancestors {[Class_ancestors $class]}"
! 	}
  }
  if {$tcl_version >= 8.5} {
--- 101,121 ----
  }
  
! proc dispatch_error {self args} {
! 	upvar 1 selector selector class class
! 	error "no such method '$selector' for object '$self'\nwith ancestors {[Class_ancestors $class]}"
! }
! 
! proc cache_method {class selector} {
  	global _ __
! 	set methods {}; set ancestors {}
! 	lookup_method $class $selector methods ancestors
! 	if {![llength $methods]} {set methods {dispatch_error}}
! 	set __($class:$selector) $methods
! 	return $methods
! }
! 
! set dispatch {
! 	global _ __; set i 0; set class $_($self:_class)
! 	if {[catch {set methods $__($class:$selector)}]} {set methods [cache_method $class $selector]}
  }
  if {$tcl_version >= 8.5} {
***************
*** 119,130 ****
  }
  proc setup_dispatcher {self} {
- 	#puts "setup_dispatcher $self"
- 	#puts [time {proc $self {selector args} [regsub -all {\$self} $::dispatch $self]}]
  	proc $self {selector args} [regsub -all {\$self} $::dispatch $self]
- 	#puts [regsub -all {\$self} $::dispatch $self]
  }
  
  set super {
! 	upvar 2 methods methods self self i oi
  	set i [expr {1+$oi}]
  	if {[llength $methods] < $i} {error "no more supermethods"}
--- 125,134 ----
  }
  proc setup_dispatcher {self} {
  	proc $self {selector args} [regsub -all {\$self} $::dispatch $self]
  }
  
  set super {
! 	upvar 1 self self
! 	upvar 2 methods methods i oi
  	set i [expr {1+$oi}]
  	if {[llength $methods] < $i} {error "no more supermethods"}





More information about the Pd-cvs mailing list