[Rcpp-commits] r293 - in pkg/src: . Rcpp

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Thu Jan 7 10:23:38 CET 2010


Author: romain
Date: 2010-01-07 10:23:37 +0100 (Thu, 07 Jan 2010)
New Revision: 293

Modified:
   pkg/src/Rcpp/WeakReference.h
   pkg/src/WeakReference.cpp
Log:
wrap the result in an RObject

Modified: pkg/src/Rcpp/WeakReference.h
===================================================================
--- pkg/src/Rcpp/WeakReference.h	2010-01-07 09:16:44 UTC (rev 292)
+++ pkg/src/Rcpp/WeakReference.h	2010-01-07 09:23:37 UTC (rev 293)
@@ -40,15 +40,18 @@
 	 */
 	WeakReference( SEXP x) throw(not_compatible) ; 
 
+	/* TODO: constructor that makes a new weak reference based
+		on key, value, finalizer (C and R) */
+	
 	/** 
 	 * Retrieve the key
 	 */
-	SEXP key() const ; 
+	RObject key() const ; 
 
 	/**
 	 * Retrieve the value
 	 */
-	SEXP value() const ;
+	RObject value() const ;
 
 } ;
 

Modified: pkg/src/WeakReference.cpp
===================================================================
--- pkg/src/WeakReference.cpp	2010-01-07 09:16:44 UTC (rev 292)
+++ pkg/src/WeakReference.cpp	2010-01-07 09:23:37 UTC (rev 293)
@@ -20,6 +20,7 @@
 // along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <Rcpp/WeakReference.h>
+#include <Rcpp/wrap.h>
 
 namespace Rcpp{
 	
@@ -31,12 +32,12 @@
 		}
 	}
 	
-	SEXP WeakReference::key() const {
-		return isNULL() ? R_NilValue : R_WeakRefKey(m_sexp) ;
+	RObject WeakReference::key() const {
+		return isNULL() ? RObject() : wrap( R_WeakRefKey(m_sexp) ) ;
 	}
 	
-	SEXP WeakReference::value() const {
-		return isNULL() ? R_NilValue : R_WeakRefValue(m_sexp) ;
+	RObject WeakReference::value() const {
+		return isNULL() ? RObject() : wrap( R_WeakRefValue(m_sexp) );
 	}
 	
 }



More information about the Rcpp-commits mailing list