diff --git a/R/parse.R b/R/parse.R index dd9e9ff..bc37054 100644 --- a/R/parse.R +++ b/R/parse.R @@ -7,7 +7,6 @@ #' @export ada_url_parse <- function(url, decode = TRUE) { url <- utf8::as_utf8(url) - ##len <- vapply(url, function(x) nchar(x, type = "bytes"), integer(1), USE.NAMES = FALSE) url_parsed <- Rcpp_ada_parse(url) if (isTRUE(decode)) { return(.decoder(url_parsed)) diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 3deeda4..f5a35f5 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,12 +11,12 @@ Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif // Rcpp_ada_parse -DataFrame Rcpp_ada_parse(CharacterVector input_vec); +DataFrame Rcpp_ada_parse(const CharacterVector& input_vec); RcppExport SEXP _adaR_Rcpp_ada_parse(SEXP input_vecSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< CharacterVector >::type input_vec(input_vecSEXP); + Rcpp::traits::input_parameter< const CharacterVector& >::type input_vec(input_vecSEXP); rcpp_result_gen = Rcpp::wrap(Rcpp_ada_parse(input_vec)); return rcpp_result_gen; END_RCPP diff --git a/src/adaR.cpp b/src/adaR.cpp index 8861abb..95f024c 100644 --- a/src/adaR.cpp +++ b/src/adaR.cpp @@ -1,6 +1,6 @@ #include "adaR.h" -std::string charsub(ada_string stringi) { +std::string charsub(const ada_string stringi) { const char* res = stringi.data; size_t len = stringi.length; ada_owned_string stringi_new = ada_idna_to_unicode(res, len); @@ -10,7 +10,7 @@ std::string charsub(ada_string stringi) { } // [[Rcpp::export]] -DataFrame Rcpp_ada_parse(CharacterVector input_vec) { +DataFrame Rcpp_ada_parse(const CharacterVector& input_vec) { unsigned int n = input_vec.length(); CharacterVector href(n); CharacterVector protocol(n); @@ -22,7 +22,7 @@ DataFrame Rcpp_ada_parse(CharacterVector input_vec) { CharacterVector pathname(n); CharacterVector search(n); CharacterVector hash(n); - for (int i = 0; i < n; i++) { + for (unsigned int i = 0; i < n; i++) { String s = input_vec[i]; const char* input = s.get_cstring(); ada_url url = ada_parse(input, std::strlen(input));