X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satlib.git;a=blobdiff_plain;f=zchaff64%2Finc_solver.cpp;h=1cc57efff865042117866be4bd86cdf88e9ef14d;hp=826f054d1c632ab9f4970e527aab7eaaf9f56391;hb=62e3101fad910dbe37baa6fdac866b36cb81abe8;hpb=9bdf7d18433a3c0cde7429a013ef67fe75081ec7;ds=sidebyside diff --git a/zchaff64/inc_solver.cpp b/zchaff64/inc_solver.cpp index 826f054..1cc57ef 100644 --- a/zchaff64/inc_solver.cpp +++ b/zchaff64/inc_solver.cpp @@ -68,17 +68,15 @@ int outoffset; int getInt() { if (offset>=length) { - ssize_t ptr; offset = 0; - do { - ptr=read(0, buffer, sizeof(int)*IS_BUFFERSIZE); - if (ptr == -1) - exit(-1); - } while(ptr==0); + ssize_t ptr=read(0, buffer, sizeof(int)*IS_BUFFERSIZE); + if (ptr == -1 || ptr == 0) + exit(-1); + ssize_t bytestoread=(4-(ptr & 3)) & 3; while(bytestoread != 0) { ssize_t p=read(0, &((char *)buffer)[ptr], bytestoread); - if (p == -1) + if (p == -1 || p == 0) exit(-1); bytestoread -= p; ptr += p;