@@ -2413,7 +2413,7 @@ int freadMain(freadMainArgs _args) {
24132413 // DTPRINT(_("Field %d: '%.10s' as type %d (tch=%p)\n"), j+1, tch, type[j], tch);
24142414 fieldStart = tch ;
24152415 int8_t thisType = type [j ]; // fetch shared type once. Cannot read half-written byte is one reason type's type is single byte to avoid atomic read here.
2416- fun [abs (thisType )](& fctx );
2416+ fun [IGNORE_BUMP (thisType )](& fctx );
24172417 if (* tch != sep ) break ;
24182418 int8_t thisSize = size [j ];
24192419 if (thisSize ) ((char * * ) targets )[thisSize ] += thisSize ; // 'if' for when rereading to avoid undefined NULL+0
@@ -2686,7 +2686,7 @@ int freadMain(freadMainArgs _args) {
26862686 // if nTypeBump>0, not-bumped columns are about to be assigned parse type APPLY_BUMP(CT_STRING) for the reread, so we have to count
26872687 // parse types now (for log). We can't count final column types afterwards because many parse types map to the same column type.
26882688 for (int i = 0 ; i < NUMTYPE ; i ++ ) typeCounts [i ] = 0 ;
2689- for (int i = 0 ; i < ncol ; i ++ ) typeCounts [ abs (type [i ]) ]++ ;
2689+ for (int i = 0 ; i < ncol ; i ++ ) typeCounts [ IGNORE_BUMP (type [i ]) ]++ ;
26902690
26912691 if (nTypeBump ) {
26922692 if (verbose ) DTPRINT (_ (" %d out-of-sample type bumps: %s\n" ), nTypeBump , typesAsString (ncol ));
@@ -2697,7 +2697,7 @@ int freadMain(freadMainArgs _args) {
26972697 if (type [j ] == CT_DROP ) continue ;
26982698 if (type [j ]< 0 ) {
26992699 // column was bumped due to out-of-sample type exception
2700- type [j ] = - type [j ];
2700+ type [j ] = APPLY_BUMP ( type [j ]) ;
27012701 size [j ] = typeSize [type [j ]];
27022702 rowSize1 += (size [j ] & 1 );
27032703 rowSize4 += (size [j ] & 4 );
0 commit comments