aboutsummaryrefslogtreecommitdiff
path: root/io.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-08-29 11:38:11 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-08-29 11:38:11 +0900
commitecababb9ed8540db4e2ee2dc8c30b7880eca761c (patch)
treed2eac828efd5e38df871bf1ec47b6fbec17b0f9d /io.cc
parent1d92d8a4f25e2f39a111410cdfbf1982d88f58e6 (diff)
downloadkati-ecababb9ed8540db4e2ee2dc8c30b7880eca761c.tar.gz
[C++] Do not die for incomplete .kati_stamp file
Instead, just re-generate the ninja file
Diffstat (limited to 'io.cc')
-rw-r--r--io.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/io.cc b/io.cc
index e8cc507..9ae1c5e 100644
--- a/io.cc
+++ b/io.cc
@@ -32,12 +32,18 @@ void DumpString(FILE* fp, StringPiece s) {
int LoadInt(FILE* fp) {
int v;
size_t r = fread(&v, sizeof(v), 1, fp);
- CHECK(r == 1);
+ if (r != 1)
+ return -1;
return v;
}
-void LoadString(FILE* fp, string* s) {
- s->resize(LoadInt(fp));
+bool LoadString(FILE* fp, string* s) {
+ int len = LoadInt(fp);
+ if (len < 0)
+ return false;
+ s->resize(len);
size_t r = fread(&(*s)[0], 1, s->size(), fp);
- CHECK(r == s->size());
+ if (r != s->size())
+ return false;
+ return true;
}