Navigation Menu

Skip to content

Commit

Permalink
Simplify delete operations
Browse files Browse the repository at this point in the history
It is not necessary to check for null pointers.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
  • Loading branch information
stweil committed Nov 24, 2016
1 parent 6158f7e commit 85e3779
Show file tree
Hide file tree
Showing 15 changed files with 23 additions and 40 deletions.
3 changes: 1 addition & 2 deletions api/baseapi.cpp
Expand Up @@ -830,8 +830,7 @@ int TessBaseAPI::Recognize(ETEXT_DESC* monitor) {
return -1;
if (FindLines() != 0)
return -1;
if (page_res_ != NULL)
delete page_res_;
delete page_res_;
if (block_list_->empty()) {
page_res_ = new PAGE_RES(false, block_list_,
&tesseract_->prev_word_best_choice_);
Expand Down
3 changes: 1 addition & 2 deletions api/baseapi.h
Expand Up @@ -373,8 +373,7 @@ class TESS_API TessBaseAPI {
* delete it when it it is replaced or the API is destructed.
*/
void SetThresholder(ImageThresholder* thresholder) {
if (thresholder_ != NULL)
delete thresholder_;
delete thresholder_;
thresholder_ = thresholder;
ClearResults();
}
Expand Down
8 changes: 3 additions & 5 deletions ccmain/pageiterator.cpp
Expand Up @@ -87,7 +87,7 @@ const PageIterator& PageIterator::operator=(const PageIterator& src) {
rect_top_ = src.rect_top_;
rect_width_ = src.rect_width_;
rect_height_ = src.rect_height_;
if (it_ != NULL) delete it_;
delete it_;
it_ = new PAGE_RES_IT(*src.it_);
BeginWord(src.blob_index_);
return *this;
Expand Down Expand Up @@ -597,10 +597,8 @@ void PageIterator::BeginWord(int offset) {
}
word_ = NULL;
// We will be iterating the box_word.
if (cblob_it_ != NULL) {
delete cblob_it_;
cblob_it_ = NULL;
}
delete cblob_it_;
cblob_it_ = NULL;
} else {
// No recognition yet, so a "symbol" is a cblob.
word_ = word_res->word;
Expand Down
2 changes: 1 addition & 1 deletion ccmain/pgedit.cpp
Expand Up @@ -191,7 +191,7 @@ ScrollView* bln_word_window_handle() { // return handle
*/

void build_image_window(int width, int height) {
if (image_win != NULL) { delete image_win; }
delete image_win;
image_win = new ScrollView(editor_image_win_name.string(),
editor_image_xpos, editor_image_ypos,
width + 1,
Expand Down
2 changes: 1 addition & 1 deletion ccstruct/pdblock.h
Expand Up @@ -51,7 +51,7 @@ class PDBLK {

/// destructor
~PDBLK() {
if (hand_poly) delete hand_poly;
delete hand_poly;
}

POLY_BLOCK *poly_block() const { return hand_poly; }
Expand Down
2 changes: 1 addition & 1 deletion ccutil/hashfn.h
Expand Up @@ -63,7 +63,7 @@ template<class T> class SmartPtr {
return ptr_;
}
void reset(T* ptr) {
if (ptr_ != NULL) delete ptr_;
delete ptr_;
ptr_ = ptr;
}
bool operator==(const T* ptr) const {
Expand Down
4 changes: 2 additions & 2 deletions classify/trainingsample.cpp
Expand Up @@ -209,7 +209,7 @@ void TrainingSample::ExtractCharDesc(int int_feature_type,
int geo_type,
CHAR_DESC_STRUCT* char_desc) {
// Extract the INT features.
if (features_ != NULL) delete [] features_;
delete [] features_;
FEATURE_SET_STRUCT* char_features = char_desc->FeatureSets[int_feature_type];
if (char_features == NULL) {
tprintf("Error: no features to train on of type %s\n",
Expand All @@ -230,7 +230,7 @@ void TrainingSample::ExtractCharDesc(int int_feature_type,
}
}
// Extract the Micro features.
if (micro_features_ != NULL) delete [] micro_features_;
delete [] micro_features_;
char_features = char_desc->FeatureSets[micro_type];
if (char_features == NULL) {
tprintf("Error: no features to train on of type %s\n",
Expand Down
6 changes: 2 additions & 4 deletions classify/trainingsampleset.cpp
Expand Up @@ -96,10 +96,8 @@ bool TrainingSampleSet::DeSerialize(bool swap, FILE* fp) {
num_raw_samples_ = samples_.size();
if (!unicharset_.load_from_file(fp)) return false;
if (!font_id_map_.DeSerialize(swap, fp)) return false;
if (font_class_array_ != NULL) {
delete font_class_array_;
font_class_array_ = NULL;
}
delete font_class_array_;
font_class_array_ = NULL;
inT8 not_null;
if (fread(&not_null, sizeof(not_null), 1, fp) != 1) return false;
if (not_null) {
Expand Down
4 changes: 1 addition & 3 deletions cube/char_samp_set.cpp
Expand Up @@ -40,9 +40,7 @@ void CharSampSet::Cleanup() {
// only free samples if owned by class
if (own_samples_ == true) {
for (int samp_idx = 0; samp_idx < cnt_; samp_idx++) {
if (samp_buff_[samp_idx] != NULL) {
delete samp_buff_[samp_idx];
}
delete samp_buff_[samp_idx];
}
}
delete []samp_buff_;
Expand Down
4 changes: 1 addition & 3 deletions cube/search_column.cpp
Expand Up @@ -195,9 +195,7 @@ SearchNode *SearchColumn::AddNode(LangModEdge *edge, int reco_cost,
}

// free the edge
if (edge != NULL) {
delete edge;
}
delete edge;
}

// update Min and Max Costs
Expand Down
8 changes: 3 additions & 5 deletions dict/dict.cpp
Expand Up @@ -191,7 +191,7 @@ Dict::Dict(CCUtil *ccutil)

Dict::~Dict() {
End();
if (hyphen_word_ != NULL) delete hyphen_word_;
delete hyphen_word_;
if (output_ambig_words_file_ != NULL) fclose(output_ambig_words_file_);
}

Expand Down Expand Up @@ -360,10 +360,8 @@ void Dict::End() {
dawgs_.clear();
successors_.clear();
document_words_ = NULL;
if (pending_words_ != NULL) {
delete pending_words_;
pending_words_ = NULL;
}
delete pending_words_;
pending_words_ = NULL;
}

// Returns true if in light of the current state unichar_id is allowed
Expand Down
4 changes: 2 additions & 2 deletions textord/fpchop.cpp
Expand Up @@ -259,8 +259,8 @@ void split_to_blob( //split the blob
pitch_error,
left_coutlines,
right_coutlines);
if (blob != NULL)
delete blob; //free it

delete blob;
}

/**********************************************************************
Expand Down
3 changes: 1 addition & 2 deletions textord/makerow.cpp
Expand Up @@ -507,8 +507,7 @@ void vigorous_noise_removal(TO_BLOCK* block) {
continue; // Looks OK.
}
// It might be noise so get rid of it.
if (blob->cblob() != NULL)
delete blob->cblob();
delete blob->cblob();
delete b_it.extract();
} else {
prev = blob;
Expand Down
8 changes: 2 additions & 6 deletions wordrec/chopper.cpp
Expand Up @@ -568,9 +568,7 @@ int Wordrec::select_blob_to_split(

for (x = 0; x < blob_choices.size(); ++x) {
if (blob_choices[x] == NULL) {
if (fragments != NULL) {
delete[] fragments;
}
delete[] fragments;
return x;
} else {
blob_choice = blob_choices[x];
Expand Down Expand Up @@ -614,9 +612,7 @@ int Wordrec::select_blob_to_split(
}
}
}
if (fragments != NULL) {
delete[] fragments;
}
delete[] fragments;
// TODO(daria): maybe a threshold of badness for
// worst_near_fragment would be useful.
return worst_index_near_fragment != -1 ?
Expand Down
2 changes: 1 addition & 1 deletion wordrec/language_model.cpp
Expand Up @@ -988,7 +988,7 @@ float LanguageModel::ComputeNgramCost(const char *unichar,
unichar, context_ptr, CertaintyScore(certainty)/denom, prob,
ngram_and_classifier_cost);
}
if (modified_context != NULL) delete[] modified_context;
delete[] modified_context;
return ngram_and_classifier_cost;
}

Expand Down

0 comments on commit 85e3779

Please sign in to comment.