shape.input - add stream state check and calculate position limit
This commit is contained in:
parent
9f439d1e2e
commit
c3ccff4f02
2 changed files with 7 additions and 1 deletions
|
@ -71,7 +71,8 @@ feature_ptr shape_featureset<filterT>::next()
|
|||
return feature_ptr();
|
||||
}
|
||||
|
||||
while (shape_.shx().pos() < 2 * shx_file_length_)
|
||||
std::streampos position_limit = 2 * shx_file_length_ - 2 * sizeof(int);
|
||||
while (shape_.shx().is_good() && shape_.shx().pos() <= position_limit)
|
||||
{
|
||||
int offset = shape_.shx().read_xdr_integer();
|
||||
int record_length = shape_.shx().read_xdr_integer();
|
||||
|
|
|
@ -259,6 +259,11 @@ public:
|
|||
{
|
||||
return file_.eof();
|
||||
}
|
||||
|
||||
inline bool is_good()
|
||||
{
|
||||
return file_.good();
|
||||
}
|
||||
};
|
||||
|
||||
#endif // SHAPEFILE_HPP
|
||||
|
|
Loading…
Reference in a new issue