@@ -72,6 +72,12 @@ class GenericVector {
72
72
int size () const {
73
73
return size_used_;
74
74
}
75
+ // Workaround to avoid g++ -Wsign-compare warnings.
76
+ unsigned int unsigned_size () const {
77
+ static_assert (sizeof (size_used_) <= sizeof (unsigned int ), " " );
78
+ assert (0 <= size_used_);
79
+ return static_cast <unsigned int >(size_used_);
80
+ }
75
81
int size_reserved () const {
76
82
return size_reserved_;
77
83
}
@@ -880,7 +886,7 @@ bool GenericVector<T>::write(
880
886
}
881
887
delete cb;
882
888
} else {
883
- if (fwrite (data_, sizeof (T), size_used_, f) != size_used_ ) return false ;
889
+ if (fwrite (data_, sizeof (T), size_used_, f) != unsigned_size () ) return false ;
884
890
}
885
891
return true ;
886
892
}
@@ -912,7 +918,7 @@ bool GenericVector<T>::read(
912
918
template <typename T>
913
919
bool GenericVector<T>::Serialize(FILE* fp) const {
914
920
if (fwrite (&size_used_, sizeof (size_used_), 1 , fp) != 1 ) return false ;
915
- if (fwrite (data_, sizeof (*data_), size_used_, fp) != size_used_ ) return false ;
921
+ if (fwrite (data_, sizeof (*data_), size_used_, fp) != unsigned_size () ) return false ;
916
922
return true ;
917
923
}
918
924
template <typename T>
@@ -933,7 +939,7 @@ bool GenericVector<T>::DeSerialize(bool swap, FILE* fp) {
933
939
if (swap) Reverse32 (&reserved);
934
940
reserve (reserved);
935
941
size_used_ = reserved;
936
- if (fread (data_, sizeof (T), size_used_, fp) != size_used_ ) return false ;
942
+ if (fread (data_, sizeof (T), size_used_, fp) != unsigned_size () ) return false ;
937
943
if (swap) {
938
944
for (int i = 0 ; i < size_used_; ++i)
939
945
ReverseN (&data_[i], sizeof (data_[i]));
@@ -982,7 +988,7 @@ bool GenericVector<T>::SerializeClasses(tesseract::TFile* fp) const {
982
988
// If swap is true, assumes a big/little-endian swap is needed.
983
989
template <typename T>
984
990
bool GenericVector<T>::DeSerializeClasses(bool swap, FILE* fp) {
985
- uinT32 reserved;
991
+ inT32 reserved;
986
992
if (fread (&reserved, sizeof (reserved), 1 , fp) != 1 ) return false ;
987
993
if (swap) Reverse32 (&reserved);
988
994
T empty;
@@ -994,7 +1000,7 @@ bool GenericVector<T>::DeSerializeClasses(bool swap, FILE* fp) {
994
1000
}
995
1001
template <typename T>
996
1002
bool GenericVector<T>::DeSerializeClasses(tesseract::TFile* fp) {
997
- uinT32 reserved;
1003
+ inT32 reserved;
998
1004
if (fp->FReadEndian (&reserved, sizeof (reserved), 1 ) != 1 ) return false ;
999
1005
T empty;
1000
1006
init_to_size (reserved, empty);
@@ -1005,7 +1011,7 @@ bool GenericVector<T>::DeSerializeClasses(tesseract::TFile* fp) {
1005
1011
}
1006
1012
template <typename T>
1007
1013
bool GenericVector<T>::SkipDeSerializeClasses(tesseract::TFile* fp) {
1008
- uinT32 reserved;
1014
+ inT32 reserved;
1009
1015
if (fp->FReadEndian (&reserved, sizeof (reserved), 1 ) != 1 ) return false ;
1010
1016
for (int i = 0 ; i < reserved; ++i) {
1011
1017
if (!T::SkipDeSerialize (fp)) return false ;
0 commit comments