[PD-cvs] pd/src poe.tcl,1.1.2.2.2.1,1.1.2.2.2.2

Mathieu Bouchard matju at users.sourceforge.net
Wed Dec 6 19:17:41 CET 2006


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

Modified Files:
      Tag: desiredata
	poe.tcl 
Log Message:
doesn't use proc unknown anymore. (i hope that's not slower.)


Index: poe.tcl
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/poe.tcl,v
retrieving revision 1.1.2.2.2.1
retrieving revision 1.1.2.2.2.2
diff -C2 -d -r1.1.2.2.2.1 -r1.1.2.2.2.2
*** poe.tcl	6 Dec 2006 08:46:06 -0000	1.1.2.2.2.1
--- poe.tcl	6 Dec 2006 18:17:39 -0000	1.1.2.2.2.2
***************
*** 75,88 ****
  		incr nextid
  		set _(\$self:_class) $self
! 		eval [concat [list \$self init] \$args]
  		return \$self
  	"
  	proc ${self}_new_as {self args} "
  		global _
! 		if {[info exists _(\$self:_class)]} {error \"object '\\$self' already exists\" }
  		set _(\$self:_class) $self
! 		eval [concat [list \$self init] \$args]
  		return \$self
  	"
  }
  
--- 75,91 ----
  		incr nextid
  		set _(\$self:_class) $self
! 		setup_dispatcher \$self
! 		eval [concat \[list \$self init\] \$args]
  		return \$self
  	"
  	proc ${self}_new_as {self args} "
  		global _
! 		if {\[info exists _(\$self:_class)\]} {error \"object '\\$self' already exists\" }
  		set _(\$self:_class) $self
! 		setup_dispatcher \$self
! 		eval [concat \[list \$self init\] \$args]
  		return \$self
  	"
+ 	setup_dispatcher $self
  }
  
***************
*** 98,116 ****
  }
  
- rename unknown unknown2
  # TODO: use {expand}
! set unknown {
  	global _ __
! 	set self [lindex $args 0]
! 	if {[llength [array names _ $self:_class]] == 0} {
! 		return [uplevel 1 [linsert $args 0 unknown2]]
! 	}
! 	set methods {}
! 	set ancestors {}
! 	set selector [lindex $args 1]
! 	set class $_($self:_class)
  	if {[info exists __($class:$selector)]} {
  		set methods $__($class:$selector)
  	} {
  		lookup_method $_($self:_class) $selector methods ancestors
  		set __($class:$selector) $methods
--- 101,112 ----
  }
  
  # TODO: use {expand}
! set dispatch {
  	global _ __
! 	set methods {}; set ancestors {}; set class $_($self:_class); set self $self
  	if {[info exists __($class:$selector)]} {
  		set methods $__($class:$selector)
  	} {
+ 		#puts "self=$self class=$_($self:_class)"
  		lookup_method $_($self:_class) $selector methods ancestors
  		set __($class:$selector) $methods
***************
*** 122,130 ****
  }
  if {$tcl_version >= 8.5} {
! 	append unknown {[lindex $methods $i] $self {expand}[lrange $args 2 end]}
  } else {
! 	append unknown {eval [concat [list [lindex $methods $i] $self] [lrange $args 2 end]]}
  }
- proc unknown {args} $unknown
  
  set super {
--- 118,130 ----
  }
  if {$tcl_version >= 8.5} {
! 	append dispatch {[lindex $methods $i] $self {expand}$args}
  } else {
! 	append dispatch {eval [concat [list [lindex $methods $i] $self] $args]}
! }
! proc setup_dispatcher {self} {
! 	#puts "setup_dispatcher $self"
! 	proc $self {selector args} [regsub -all {\$self} $::dispatch $self]
! 	#puts [regsub -all {\$self} $::dispatch $self]
  }
  
  set super {





More information about the Pd-cvs mailing list