[rkward-cvs] SF.net SVN: rkward: [1786] trunk/rkward

tfry at users.sourceforge.net tfry at users.sourceforge.net
Tue Apr 3 09:22:14 UTC 2007


Revision: 1786
          http://svn.sourceforge.net/rkward/?rev=1786&view=rev
Author:   tfry
Date:     2007-04-03 02:22:14 -0700 (Tue, 03 Apr 2007)

Log Message:
-----------
FOR 0.4.7: fix symbol lookup in .rk.make.watch.f

Modified Paths:
--------------
    trunk/rkward/ChangeLog
    trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R

Modified: trunk/rkward/ChangeLog
===================================================================
--- trunk/rkward/ChangeLog	2007-04-03 09:21:38 UTC (rev 1785)
+++ trunk/rkward/ChangeLog	2007-04-03 09:22:14 UTC (rev 1786)
@@ -1,4 +1,5 @@
 --- Version 0.4.7 - Apr-XX-2007
+- fixed: the presence of user objects called "missing", "assign", or "get" would confuse some RKWard internals
 - several existing plugins have been improved in various ways
 - use maximum permissible width in the object viewer
 - fix a crash that occurred during startup under some circumstances

Modified: trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R
===================================================================
--- trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R	2007-04-03 09:21:38 UTC (rev 1785)
+++ trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R	2007-04-03 09:22:14 UTC (rev 1786)
@@ -168,6 +168,15 @@
 }
 
 ".rk.make.watch.f" <- function (k) {
+	# we need to make sure, the functions we use are *not* looked up as symbols in .GlobalEnv.
+	# else, for instance, if the user names a symbol "missing", and we try to resolve it in the
+	# wrapper function below, evaluation would recurse to look up "missing" in the .GlobalEnv
+	# due to the call to "if (!missing(value))".
+	get <- base::get
+	missing <- base::missing
+	assign <- base::assign
+	.rk.do.call <- rkward::.rk.do.call
+
 	function (value) {
 		if (!missing (value)) {
 			assign (k, value, envir=.rk.watched.symbols)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list