diff --git a/tools/xgcombine_buffer.cpp b/tools/xgcombine_buffer.cpp index 878408894..99bdac67e 100644 --- a/tools/xgcombine_buffer.cpp +++ b/tools/xgcombine_buffer.cpp @@ -136,25 +136,24 @@ public: } ngleft -= 1; ngacc += 1; + int pass = 1; if( fwlist != NULL ){ - int pass; utils::Assert( fscanf( fwlist, "%u", &pass ) ==1 ); - if( pass == 0 ){ - vskip( fheader ); ngacc -= 1; - } } - - const int nfeat = readnum( fheader ); - std::vector findex; - std::vector fvalue; - // pairs - this->Load( findex, fvalue, fheader ); - utils::Assert( findex.size() == (unsigned)nfeat ); - if( rescale != 0 ) this->DoRescale( fvalue ); - // push back data :) - this->info.labels.push_back( label ); - this->data.AddRow( findex, fvalue ); - + if( pass == 0 ){ + vskip( fheader ); ngacc -= 1; + }else{ + const int nfeat = readnum( fheader ); + std::vector findex; + std::vector fvalue; + // pairs + this->Load( findex, fvalue, fheader ); + utils::Assert( findex.size() == (unsigned)nfeat ); + if( rescale != 0 ) this->DoRescale( fvalue ); + // push back data :) + this->info.labels.push_back( label ); + this->data.AddRow( findex, fvalue ); + } if( ngleft == 0 && fgroup != NULL && ngacc != 0 ){ info.group_ptr.push_back( info.group_ptr.back() + ngacc ); utils::Assert( info.group_ptr.back() == data.NumRow(), "group size must match num rows" );