[Rcpp-devel] Couple of minor fixes to Rcpp
Dirk Eddelbuettel
edd at debian.org
Wed Oct 20 23:31:28 CEST 2010
Hi Karl,
Thanks for spotting and fixing those. Out of curiousity, which non-gcc
compiler was that? icc ?
On 20 October 2010 at 14:22, Karl Millar wrote:
| This patch fixes a couple of minor issues. Both are cases of illegal C++
| code caught by using a non-gcc complier. The first is a bug in
| Vector::fill_dispatch, which would be serious except that the function
| appears to be unused at the moment. The second is just a syntactic issue.
|
| The patch is against the current svn repository.
Super. We will apply those shortly; I also found another thinko of ours so
maybe we'll just toss out 0.8.8 in due course.
Thanks, Dirk
| Thanks,
|
| Karl Millar
|
| ----------------------------------------------------------------------
| Index: Rcpp/inst/include/Rcpp/vector/Vector.h
| ===================================================================
| --- Rcpp/inst/include/Rcpp/vector/Vector.h (revision 2347)
| +++ Rcpp/inst/include/Rcpp/vector/Vector.h (working copy)
| @@ -311,7 +311,7 @@
| // when this is not trivial, this is SEXP
| SEXP elem = PROTECT( converter_type::get( u ) );
| iterator it(begin());
| - for( int i=0; i<size ; i++, ++it){
| + for( int i=0; i<size() ; i++, ++it){
| *it = ::Rf_duplicate( elem ) ;
| }
| UNPROTECT(1) ; /* elem */
| Index: Rcpp/inst/include/Rcpp/XPtr.h
| ===================================================================
| --- Rcpp/inst/include/Rcpp/XPtr.h (revision 2347)
| +++ Rcpp/inst/include/Rcpp/XPtr.h (working copy)
| @@ -59,7 +59,8 @@
| * so you need to make sure the pointer can be "delete" d
| * this way (has to be a C++ object)
| */
| - explicit XPtr(T* p, bool set_delete_finalizer, SEXP tag, SEXP prot);
| + explicit XPtr(T* p, bool set_delete_finalizer = true, SEXP tag = R_NilValue,
| + SEXP prot = R_NilValue);
|
| XPtr( const XPtr& other ) : RObject( other.asSexp() ) {}
|
| @@ -168,7 +169,7 @@
| };
|
| template<typename T>
| -XPtr<T>::XPtr(T* p, bool set_delete_finalizer = true, SEXP tag = R_NilValue, SEXP prot = R_NilValue) : RObject() {
| +XPtr<T>::XPtr(T* p, bool set_delete_finalizer, SEXP tag, SEXP prot) : RObject() {
| setSEXP( R_MakeExternalPtr( (void*)p , tag, prot) ) ;
| if( set_delete_finalizer ){
| setDeleteFinalizer() ;
|
| ----------------------------------------------------------------------
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list