From 4a5425521925ed6fb96be96ee56be520570bce0b Mon Sep 17 00:00:00 2001 From: Holger Schwenk Date: Wed, 12 Aug 2015 14:00:48 +0200 Subject: [PATCH] missing cast to long to handle resamling of very large data files --- Data.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Data.cpp b/Data.cpp index cf71273..9dcccb0 100644 --- a/Data.cpp +++ b/Data.cpp @@ -477,8 +477,8 @@ void Data::Preload() } // copy all factors sequentially in memory - REAL *adr_inp=mem_inp+idx*idim; - REAL *adr_trg=mem_trg+idx*odim; + REAL *adr_inp=mem_inp + (size_t) idx*idim; + REAL *adr_trg=mem_trg + (size_t) idx*odim; for (vector::iterator it = (*itf).begin(); it!=(*itf).end(); ++it) { debug2(" load factor %ld to address %p\n", it-(*itf).begin(), adr_inp); memcpy(adr_inp, (*it)->input, idim1*sizeof(REAL)); @@ -522,7 +522,7 @@ void Data::Preload() #ifdef DEBUG printf("DUMP PRELOADED DATA at adr %p (%d examples of dim %d->%d):\n",mem_inp,idx,idim,odim); for (int e=0; e0) target = &mem_trg[idx*odim]; + if (odim>0) target = &mem_trg[(size_t) idx*odim]; current_df = mem_cdf[idx]; // handling multiple languages