@@ -167,7 +167,7 @@ namespace Rcpp{
167167 bool add_value (int i){
168168 RCPP_DEBUG_2 ( " %s::add_value(%d)" , DEMANGLE (IndexHash), i )
169169 STORAGE val = src[i++] ;
170- int addr = get_addr (val) ;
170+ unsigned int addr = get_addr (val) ;
171171 while (data[addr] && not_equal ( src[data[addr] - 1 ], val)) {
172172 addr++;
173173 if (addr == m) {
@@ -185,8 +185,8 @@ namespace Rcpp{
185185 }
186186
187187 /* NOTE: we are returning a 1-based index ! */
188- inline int get_index (STORAGE value) const {
189- int addr = get_addr (value) ;
188+ inline unsigned int get_index (STORAGE value) const {
189+ unsigned int addr = get_addr (value) ;
190190 while (data[addr]) {
191191 if (src[data[addr] - 1 ] == value)
192192 return data[addr];
@@ -197,16 +197,16 @@ namespace Rcpp{
197197 }
198198
199199 // defined below
200- int get_addr (STORAGE value) const ;
200+ unsigned int get_addr (STORAGE value) const ;
201201 } ;
202202
203203 template <>
204- inline int IndexHash<INTSXP >::get_addr(int value) const {
204+ inline unsigned int IndexHash<INTSXP >::get_addr(int value) const {
205205 return RCPP_HASH (value) ;
206206 }
207207 template <>
208- inline int IndexHash<REALSXP >::get_addr(double val) const {
209- int addr;
208+ inline unsigned int IndexHash<REALSXP >::get_addr(double val) const {
209+ unsigned int addr;
210210 union dint_u {
211211 double d;
212212 unsigned int u[2 ];
@@ -222,9 +222,9 @@ namespace Rcpp{
222222 }
223223
224224 template <>
225- inline int IndexHash<STRSXP >::get_addr(SEXP value) const {
225+ inline unsigned int IndexHash<STRSXP >::get_addr(SEXP value) const {
226226 intptr_t val = (intptr_t ) value;
227- int addr;
227+ unsigned int addr;
228228 #if (defined _LP64) || (defined __LP64__) || (defined WIN64)
229229 addr = RCPP_HASH ((val & 0xffffffff ) ^ (val >> 32 ));
230230 #else
0 commit comments