fix cranchecks

This commit is contained in:
tqchen
2015-03-03 12:37:29 -08:00
parent ee6e8279eb
commit 9fd8612700
2 changed files with 26 additions and 12 deletions

View File

@@ -6,9 +6,10 @@
#include "../utils/io.h"
#include "../utils/utils.h"
#include "simple_dmatrix-inl.hpp"
#ifndef XGBOOST_STRICT_CXX98_
#include "page_dmatrix-inl.hpp"
#include "page_fmatrix-inl.hpp"
#endif
// implements data loads using dmatrix simple for now
namespace xgboost {
@@ -19,14 +20,6 @@ DataMatrix* LoadDataMatrix(const char *fname, bool silent, bool savebuffer) {
dmat->LoadText(fname, silent);
return dmat;
}
std::string tmp_fname;
const char *fname_ext = NULL;
if (strchr(fname, ';') != NULL) {
tmp_fname = fname;
char *ptr = strchr(&tmp_fname[0], ';');
ptr[0] = '\0'; fname = &tmp_fname[0];
fname_ext = ptr + 1;
}
int magic;
utils::FileStream fs(utils::FopenCheck(fname, "rb"));
utils::Check(fs.Read(&magic, sizeof(magic)) != 0, "invalid input file format");
@@ -38,6 +31,15 @@ DataMatrix* LoadDataMatrix(const char *fname, bool silent, bool savebuffer) {
fs.Close();
return dmat;
}
#ifndef XGBOOST_STRICT_CXX98_
std::string tmp_fname;
const char *fname_ext = NULL;
if (strchr(fname, ';') != NULL) {
tmp_fname = fname;
char *ptr = strchr(&tmp_fname[0], ';');
ptr[0] = '\0'; fname = &tmp_fname[0];
fname_ext = ptr + 1;
}
if (magic == DMatrixPage::kMagic) {
if (fname_ext == NULL) {
DMatrixPage *dmat = new DMatrixPage();
@@ -58,14 +60,15 @@ DataMatrix* LoadDataMatrix(const char *fname, bool silent, bool savebuffer) {
dmat->Load(fs, silent, fname);
return dmat;
}
#endif
fs.Close();
DMatrixSimple *dmat = new DMatrixSimple();
dmat->CacheLoad(fname, silent, savebuffer);
return dmat;
}
void SaveDataMatrix(const DataMatrix &dmat, const char *fname, bool silent) {
#ifndef XGBOOST_STRICT_CXX98_
if (!strcmp(fname + strlen(fname) - 5, ".page")) {
DMatrixPage::Save(fname, dmat, silent);
return;
@@ -74,6 +77,7 @@ void SaveDataMatrix(const DataMatrix &dmat, const char *fname, bool silent) {
DMatrixColPage::Save(fname, dmat, silent);
return;
}
#endif
if (dmat.magic == DMatrixSimple::kMagic) {
const DMatrixSimple *p_dmat = static_cast<const DMatrixSimple*>(&dmat);
p_dmat->SaveBinary(fname, silent);