mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2025-01-18 06:30:14 +08:00
Fewer g++ -Wsign-compare warnings
This commit is contained in:
parent
1bd561d431
commit
c335508e84
@ -670,7 +670,7 @@ bool TessPDFRenderer::BeginDocumentHandler() {
|
|||||||
long int size = ftell(fp);
|
long int size = ftell(fp);
|
||||||
fseek(fp, 0, SEEK_SET);
|
fseek(fp, 0, SEEK_SET);
|
||||||
const std::unique_ptr</*non-const*/ char[]> buffer(new char[size]);
|
const std::unique_ptr</*non-const*/ char[]> buffer(new char[size]);
|
||||||
if (fread(buffer.get(), 1, size, fp) != size) {
|
if (fread(buffer.get(), 1, size, fp) != static_cast<unsigned long>(size)) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -945,7 +945,7 @@ bool TessPDFRenderer::EndDocumentHandler() {
|
|||||||
if (n >= sizeof(buf)) return false;
|
if (n >= sizeof(buf)) return false;
|
||||||
AppendString(buf);
|
AppendString(buf);
|
||||||
size_t pages_objsize = strlen(buf);
|
size_t pages_objsize = strlen(buf);
|
||||||
for (size_t i = 0; i < pages_.size(); i++) {
|
for (size_t i = 0; i < pages_.unsigned_size(); i++) {
|
||||||
n = snprintf(buf, sizeof(buf),
|
n = snprintf(buf, sizeof(buf),
|
||||||
"%ld 0 R ", pages_[i]);
|
"%ld 0 R ", pages_[i]);
|
||||||
if (n >= sizeof(buf)) return false;
|
if (n >= sizeof(buf)) return false;
|
||||||
|
@ -513,7 +513,7 @@ BOOL8 Tesseract::terrible_word_crunch(WERD_RES *word,
|
|||||||
|
|
||||||
if ((word->best_choice->unichar_string().length () == 0) ||
|
if ((word->best_choice->unichar_string().length () == 0) ||
|
||||||
(strspn (word->best_choice->unichar_string().string(), " ") ==
|
(strspn (word->best_choice->unichar_string().string(), " ") ==
|
||||||
word->best_choice->unichar_string().length ()))
|
word->best_choice->unichar_string().unsigned_size ()))
|
||||||
crunch_mode = 1;
|
crunch_mode = 1;
|
||||||
else {
|
else {
|
||||||
adjusted_len = word->reject_map.length ();
|
adjusted_len = word->reject_map.length ();
|
||||||
|
@ -72,6 +72,12 @@ class GenericVector {
|
|||||||
int size() const {
|
int size() const {
|
||||||
return size_used_;
|
return size_used_;
|
||||||
}
|
}
|
||||||
|
// Workaround to avoid g++ -Wsign-compare warnings.
|
||||||
|
unsigned int unsigned_size() const {
|
||||||
|
static_assert(sizeof(size_used_) <= sizeof(unsigned int), "");
|
||||||
|
assert(0 <= size_used_);
|
||||||
|
return static_cast<unsigned int>(size_used_);
|
||||||
|
}
|
||||||
int size_reserved() const {
|
int size_reserved() const {
|
||||||
return size_reserved_;
|
return size_reserved_;
|
||||||
}
|
}
|
||||||
@ -880,7 +886,7 @@ bool GenericVector<T>::write(
|
|||||||
}
|
}
|
||||||
delete cb;
|
delete cb;
|
||||||
} else {
|
} else {
|
||||||
if (fwrite(data_, sizeof(T), size_used_, f) != size_used_) return false;
|
if (fwrite(data_, sizeof(T), size_used_, f) != unsigned_size()) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -912,7 +918,7 @@ bool GenericVector<T>::read(
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
bool GenericVector<T>::Serialize(FILE* fp) const {
|
bool GenericVector<T>::Serialize(FILE* fp) const {
|
||||||
if (fwrite(&size_used_, sizeof(size_used_), 1, fp) != 1) return false;
|
if (fwrite(&size_used_, sizeof(size_used_), 1, fp) != 1) return false;
|
||||||
if (fwrite(data_, sizeof(*data_), size_used_, fp) != size_used_) return false;
|
if (fwrite(data_, sizeof(*data_), size_used_, fp) != unsigned_size()) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -933,7 +939,7 @@ bool GenericVector<T>::DeSerialize(bool swap, FILE* fp) {
|
|||||||
if (swap) Reverse32(&reserved);
|
if (swap) Reverse32(&reserved);
|
||||||
reserve(reserved);
|
reserve(reserved);
|
||||||
size_used_ = reserved;
|
size_used_ = reserved;
|
||||||
if (fread(data_, sizeof(T), size_used_, fp) != size_used_) return false;
|
if (fread(data_, sizeof(T), size_used_, fp) != unsigned_size()) return false;
|
||||||
if (swap) {
|
if (swap) {
|
||||||
for (int i = 0; i < size_used_; ++i)
|
for (int i = 0; i < size_used_; ++i)
|
||||||
ReverseN(&data_[i], sizeof(data_[i]));
|
ReverseN(&data_[i], sizeof(data_[i]));
|
||||||
@ -982,7 +988,7 @@ bool GenericVector<T>::SerializeClasses(tesseract::TFile* fp) const {
|
|||||||
// If swap is true, assumes a big/little-endian swap is needed.
|
// If swap is true, assumes a big/little-endian swap is needed.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool GenericVector<T>::DeSerializeClasses(bool swap, FILE* fp) {
|
bool GenericVector<T>::DeSerializeClasses(bool swap, FILE* fp) {
|
||||||
uinT32 reserved;
|
inT32 reserved;
|
||||||
if (fread(&reserved, sizeof(reserved), 1, fp) != 1) return false;
|
if (fread(&reserved, sizeof(reserved), 1, fp) != 1) return false;
|
||||||
if (swap) Reverse32(&reserved);
|
if (swap) Reverse32(&reserved);
|
||||||
T empty;
|
T empty;
|
||||||
@ -994,7 +1000,7 @@ bool GenericVector<T>::DeSerializeClasses(bool swap, FILE* fp) {
|
|||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool GenericVector<T>::DeSerializeClasses(tesseract::TFile* fp) {
|
bool GenericVector<T>::DeSerializeClasses(tesseract::TFile* fp) {
|
||||||
uinT32 reserved;
|
inT32 reserved;
|
||||||
if (fp->FReadEndian(&reserved, sizeof(reserved), 1) != 1) return false;
|
if (fp->FReadEndian(&reserved, sizeof(reserved), 1) != 1) return false;
|
||||||
T empty;
|
T empty;
|
||||||
init_to_size(reserved, empty);
|
init_to_size(reserved, empty);
|
||||||
@ -1005,7 +1011,7 @@ bool GenericVector<T>::DeSerializeClasses(tesseract::TFile* fp) {
|
|||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool GenericVector<T>::SkipDeSerializeClasses(tesseract::TFile* fp) {
|
bool GenericVector<T>::SkipDeSerializeClasses(tesseract::TFile* fp) {
|
||||||
uinT32 reserved;
|
inT32 reserved;
|
||||||
if (fp->FReadEndian(&reserved, sizeof(reserved), 1) != 1) return false;
|
if (fp->FReadEndian(&reserved, sizeof(reserved), 1) != 1) return false;
|
||||||
for (int i = 0; i < reserved; ++i) {
|
for (int i = 0; i < reserved; ++i) {
|
||||||
if (!T::SkipDeSerialize(fp)) return false;
|
if (!T::SkipDeSerialize(fp)) return false;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#ifndef STRNGS_H
|
#ifndef STRNGS_H
|
||||||
#define STRNGS_H
|
#define STRNGS_H
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
@ -66,6 +67,12 @@ class TESS_API STRING
|
|||||||
BOOL8 contains(const char c) const;
|
BOOL8 contains(const char c) const;
|
||||||
inT32 length() const;
|
inT32 length() const;
|
||||||
inT32 size() const { return length(); }
|
inT32 size() const { return length(); }
|
||||||
|
// Workaround to avoid g++ -Wsign-compare warnings.
|
||||||
|
uinT32 unsigned_size() const {
|
||||||
|
const inT32 len = length();
|
||||||
|
assert(0 <= len);
|
||||||
|
return static_cast<uinT32>(len);
|
||||||
|
}
|
||||||
const char *string() const;
|
const char *string() const;
|
||||||
const char *c_str() const;
|
const char *c_str() const;
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ void Classify::LearnBlob(const STRING& fontname, TBLOB* blob,
|
|||||||
bool Classify::WriteTRFile(const STRING& filename) {
|
bool Classify::WriteTRFile(const STRING& filename) {
|
||||||
STRING tr_filename = filename + ".tr";
|
STRING tr_filename = filename + ".tr";
|
||||||
FILE* fp = Efopen(tr_filename.string(), "wb");
|
FILE* fp = Efopen(tr_filename.string(), "wb");
|
||||||
int len = tr_file_data_.length();
|
size_t len = tr_file_data_.length();
|
||||||
bool result =
|
bool result =
|
||||||
fwrite(&tr_file_data_[0], sizeof(tr_file_data_[0]), len, fp) == len;
|
fwrite(&tr_file_data_[0], sizeof(tr_file_data_[0]), len, fp) == len;
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
@ -139,10 +139,8 @@ void InitFeatureDefs(FEATURE_DEFS_STRUCT *featuredefs) {
|
|||||||
* @note History: Wed May 23 13:52:19 1990, DSJ, Created.
|
* @note History: Wed May 23 13:52:19 1990, DSJ, Created.
|
||||||
*/
|
*/
|
||||||
void FreeCharDescription(CHAR_DESC CharDesc) {
|
void FreeCharDescription(CHAR_DESC CharDesc) {
|
||||||
int i;
|
|
||||||
|
|
||||||
if (CharDesc) {
|
if (CharDesc) {
|
||||||
for (i = 0; i < CharDesc->NumFeatureSets; i++)
|
for (size_t i = 0; i < CharDesc->NumFeatureSets; i++)
|
||||||
FreeFeatureSet (CharDesc->FeatureSets[i]);
|
FreeFeatureSet (CharDesc->FeatureSets[i]);
|
||||||
Efree(CharDesc);
|
Efree(CharDesc);
|
||||||
}
|
}
|
||||||
@ -163,12 +161,10 @@ void FreeCharDescription(CHAR_DESC CharDesc) {
|
|||||||
*/
|
*/
|
||||||
CHAR_DESC NewCharDescription(const FEATURE_DEFS_STRUCT &FeatureDefs) {
|
CHAR_DESC NewCharDescription(const FEATURE_DEFS_STRUCT &FeatureDefs) {
|
||||||
CHAR_DESC CharDesc;
|
CHAR_DESC CharDesc;
|
||||||
int i;
|
|
||||||
|
|
||||||
CharDesc = (CHAR_DESC) Emalloc (sizeof (CHAR_DESC_STRUCT));
|
CharDesc = (CHAR_DESC) Emalloc (sizeof (CHAR_DESC_STRUCT));
|
||||||
CharDesc->NumFeatureSets = FeatureDefs.NumFeatureTypes;
|
CharDesc->NumFeatureSets = FeatureDefs.NumFeatureTypes;
|
||||||
|
|
||||||
for (i = 0; i < CharDesc->NumFeatureSets; i++)
|
for (size_t i = 0; i < CharDesc->NumFeatureSets; i++)
|
||||||
CharDesc->FeatureSets[i] = NULL;
|
CharDesc->FeatureSets[i] = NULL;
|
||||||
|
|
||||||
return (CharDesc);
|
return (CharDesc);
|
||||||
@ -196,16 +192,15 @@ CHAR_DESC NewCharDescription(const FEATURE_DEFS_STRUCT &FeatureDefs) {
|
|||||||
*/
|
*/
|
||||||
void WriteCharDescription(const FEATURE_DEFS_STRUCT& FeatureDefs,
|
void WriteCharDescription(const FEATURE_DEFS_STRUCT& FeatureDefs,
|
||||||
CHAR_DESC CharDesc, STRING* str) {
|
CHAR_DESC CharDesc, STRING* str) {
|
||||||
int Type;
|
|
||||||
int NumSetsToWrite = 0;
|
int NumSetsToWrite = 0;
|
||||||
|
|
||||||
for (Type = 0; Type < CharDesc->NumFeatureSets; Type++)
|
for (size_t Type = 0; Type < CharDesc->NumFeatureSets; Type++)
|
||||||
if (CharDesc->FeatureSets[Type])
|
if (CharDesc->FeatureSets[Type])
|
||||||
NumSetsToWrite++;
|
NumSetsToWrite++;
|
||||||
|
|
||||||
str->add_str_int(" ", NumSetsToWrite);
|
str->add_str_int(" ", NumSetsToWrite);
|
||||||
*str += "\n";
|
*str += "\n";
|
||||||
for (Type = 0; Type < CharDesc->NumFeatureSets; Type++) {
|
for (size_t Type = 0; Type < CharDesc->NumFeatureSets; Type++) {
|
||||||
if (CharDesc->FeatureSets[Type]) {
|
if (CharDesc->FeatureSets[Type]) {
|
||||||
*str += FeatureDefs.FeatureDesc[Type]->ShortName;
|
*str += FeatureDefs.FeatureDesc[Type]->ShortName;
|
||||||
*str += " ";
|
*str += " ";
|
||||||
@ -220,7 +215,7 @@ bool ValidCharDescription(const FEATURE_DEFS_STRUCT &FeatureDefs,
|
|||||||
CHAR_DESC CharDesc) {
|
CHAR_DESC CharDesc) {
|
||||||
bool anything_written = false;
|
bool anything_written = false;
|
||||||
bool well_formed = true;
|
bool well_formed = true;
|
||||||
for (int Type = 0; Type < CharDesc->NumFeatureSets; Type++) {
|
for (size_t Type = 0; Type < CharDesc->NumFeatureSets; Type++) {
|
||||||
if (CharDesc->FeatureSets[Type]) {
|
if (CharDesc->FeatureSets[Type]) {
|
||||||
for (int i = 0; i < CharDesc->FeatureSets[Type]->NumFeatures; i++) {
|
for (int i = 0; i < CharDesc->FeatureSets[Type]->NumFeatures; i++) {
|
||||||
FEATURE feat = CharDesc->FeatureSets[Type]->Features[i];
|
FEATURE feat = CharDesc->FeatureSets[Type]->Features[i];
|
||||||
|
@ -184,7 +184,7 @@ void NetworkIO::FromPixes(const StaticShape& shape,
|
|||||||
stride_map_.SetStride(h_w_pairs);
|
stride_map_.SetStride(h_w_pairs);
|
||||||
ResizeToMap(int_mode(), stride_map_, shape.depth());
|
ResizeToMap(int_mode(), stride_map_, shape.depth());
|
||||||
// Iterate over the images again to copy the data.
|
// Iterate over the images again to copy the data.
|
||||||
for (int b = 0; b < pixes.size(); ++b) {
|
for (size_t b = 0; b < pixes.size(); ++b) {
|
||||||
Pix* pix = const_cast<Pix*>(pixes[b]);
|
Pix* pix = const_cast<Pix*>(pixes[b]);
|
||||||
float black = 0.0f, white = 255.0f;
|
float black = 0.0f, white = 255.0f;
|
||||||
if (shape.depth() != 3) ComputeBlackWhite(pix, &black, &white);
|
if (shape.depth() != 3) ComputeBlackWhite(pix, &black, &white);
|
||||||
|
@ -43,7 +43,8 @@ bool StrideMap::Index::IsLast(FlexDimensions dimension) const {
|
|||||||
int StrideMap::Index::MaxIndexOfDim(FlexDimensions dim) const {
|
int StrideMap::Index::MaxIndexOfDim(FlexDimensions dim) const {
|
||||||
int max_index = stride_map_->shape_[dim] - 1;
|
int max_index = stride_map_->shape_[dim] - 1;
|
||||||
if (dim == FD_BATCH) return max_index;
|
if (dim == FD_BATCH) return max_index;
|
||||||
int batch = indices_[FD_BATCH];
|
assert(0 <= indices_[FD_BATCH]);
|
||||||
|
const size_t batch = indices_[FD_BATCH];
|
||||||
if (dim == FD_HEIGHT) {
|
if (dim == FD_HEIGHT) {
|
||||||
if (batch >= stride_map_->heights_.size() ||
|
if (batch >= stride_map_->heights_.size() ||
|
||||||
stride_map_->heights_[batch] > max_index)
|
stride_map_->heights_[batch] > max_index)
|
||||||
|
@ -368,7 +368,6 @@ void ReadTrainingSamples(const FEATURE_DEFS_STRUCT& feature_defs,
|
|||||||
LABELEDLIST char_sample;
|
LABELEDLIST char_sample;
|
||||||
FEATURE_SET feature_samples;
|
FEATURE_SET feature_samples;
|
||||||
CHAR_DESC char_desc;
|
CHAR_DESC char_desc;
|
||||||
int i;
|
|
||||||
int feature_type = ShortNameToFeatureType(feature_defs, feature_name);
|
int feature_type = ShortNameToFeatureType(feature_defs, feature_name);
|
||||||
// Zero out the font_sample_count for all the classes.
|
// Zero out the font_sample_count for all the classes.
|
||||||
LIST it = *training_samples;
|
LIST it = *training_samples;
|
||||||
@ -404,7 +403,7 @@ void ReadTrainingSamples(const FEATURE_DEFS_STRUCT& feature_defs,
|
|||||||
} else {
|
} else {
|
||||||
FreeFeatureSet(feature_samples);
|
FreeFeatureSet(feature_samples);
|
||||||
}
|
}
|
||||||
for (i = 0; i < char_desc->NumFeatureSets; i++) {
|
for (size_t i = 0; i < char_desc->NumFeatureSets; i++) {
|
||||||
if (feature_type != i)
|
if (feature_type != i)
|
||||||
FreeFeatureSet(char_desc->FeatureSets[i]);
|
FreeFeatureSet(char_desc->FeatureSets[i]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user