Commit Graph

1555 Commits

Author SHA1 Message Date
Stefan Weil
4704fcacb1 cube: Fix use after free regression
Coverity report:

CID 1366758:  Memory - corruptions  (USE_AFTER_FREE)
Calling "operator delete[]" frees pointer "label32"
 which has already been freed.

Commit f60ff4d575 fixed several memory leaks
but also added this wrong delete operation.

label32 is assigned to char_samp->label32_, so it is freed when deleting
char_samp.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-02 22:17:41 +01:00
zdenop
4ac54a27c6 Merge pull request #523 from stweil/casts
opencl: Remove unneeded and potentially bad type casts
2016-12-02 17:21:33 +01:00
Stefan Weil
a389b7c8e9 opencl: Remove unneeded and potentially bad type casts
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-02 00:02:35 +01:00
zdenop
e4faf95586 Merge pull request #515 from stweil/parameters
Support standard parameter form --oem, --psm for tesseract executable
2016-12-01 20:37:30 +01:00
zdenop
690616279c Merge pull request #514 from stweil/free
Simplify new operations
2016-12-01 20:36:24 +01:00
zdenop
875db240e8 Merge pull request #503 from stweil/modernize
opencl: Use nullptr and POSIX data types
2016-12-01 20:34:30 +01:00
zdenop
906438fa5c Merge pull request #506 from stweil/lstm
lstm: Fix issues reported by Coverity scan
2016-12-01 20:34:04 +01:00
Stefan Weil
dc066213c7 opencl: Replace NULL by nullptr
Remove also some unneeded nullptr assignments.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:50:20 +01:00
Stefan Weil
397bcc66d5 opencl: Replace Tesseract data types by POSIX data types
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:49:27 +01:00
Stefan Weil
9e0da72818 lstm: Fix possible float division by zero
Coverity report:

CID 1366441 (#1 of 1): Division or modulo by float zero (DIVIDE_BY_ZERO)
5. divide_by_zero: In expression
 static_cast<double>(char_errors) / truth_size, division by expression
 truth_size which may be zero has undefined behavior.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:42:54 +01:00
Stefan Weil
dfd7082679 lstm: Fix explicit null dereferenced
Coverity report:

CID 1366443 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
3. var_deref_model: Passing null pointer this->sub_trainer_ to
 training_iteration, which dereferences it.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:42:54 +01:00
Stefan Weil
f3e8895a6a lstm: Pass big parameter by reference (performance)
Coverity report:

CID 1366448 (#1 of 1): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter recoder of type
 tesseract::UnicharCompress const (size 240 bytes) by value.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:42:54 +01:00
Stefan Weil
bb6cfc1c75 lstm: Initialize member variable beam_size_
Coverity report:

CID 1366450 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
4. uninit_member: Non-static class member beam_size_ is not initialized
 in this constructor nor in any functions that it calls.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:42:54 +01:00
Stefan Weil
06b28a111d lstm: Initialize member variable input_width_
Coverity report:

CID 1366452 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
18. uninit_member: Non-static class member input_width_ is not initialized
 in this constructor nor in any functions that it calls.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-12-01 14:42:54 +01:00
Egor Pugin
afd069c219 Fix build. 2016-12-01 12:51:03 +03:00
Egor Pugin
68aa285dcc Update CMakeLists.txt 2016-12-01 12:38:45 +03:00
Ray Smith
ce76d1c569 Fixes to training process to allow incremental training from a recognition model 2016-11-30 15:51:17 -08:00
Ray Smith
9d9056716f Added std:: to vector 2016-11-30 15:45:36 -08:00
Ray Smith
53003f9074 Formatting changes from clang_tidy on latest pull 2016-11-30 15:44:25 -08:00
Stefan Weil
92d981b93a Change tesseract parameter -psm to --psm
For compatibility reasons the old variant is still supported.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-30 22:23:46 +01:00
Stefan Weil
d2f9264383 Change tesseract parameter -oem to --oem
It was introduced recently in commit f24ef67d, so there is no need
to support the old variant for compatibility reasons.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-30 22:23:46 +01:00
Stefan Weil
78d91701bd Simplify new operations
It is not necessary to check for null pointers after new.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-30 20:24:38 +01:00
Stefan Weil
03eec61a2f cube: Simplify new operations
It is not necessary to check for null pointers after new.

Simplify also two delete operations which were missing
in the previous commit.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-30 20:24:38 +01:00
zdenop
23e420aab0 Merge pull request #512 from NinnOgTonic/master
Correcting link for 3rd party wiki pages
2016-11-30 12:48:33 +01:00
Morten Espersen
392e32d990 Correcting link for 3rd party wiki pages 2016-11-30 12:00:23 +01:00
Egor Pugin
0d4d36f058 Merge pull request #508 from stweil/cube
cube: Fix issues reported by Coverity scan
2016-11-30 00:58:47 +03:00
Egor Pugin
5d3926e460 Merge pull request #507 from stweil/free
cube: Simplify delete operations
2016-11-30 00:55:41 +03:00
zdenop
dd9452cb23 Merge pull request #511 from stweil/mingw
Fix (cross) build for Mingw-w64
2016-11-29 15:16:47 +01:00
Stefan Weil
faea44cbc7 mingw-w64: Fix compiler warnings caused by macro redefinition
GNU compiler report (cross build for Windows on Debian):

In file included from ../ccutil/host.h:63:0,
                 from ../arch/dotproductsse.h:22,
                 from ../arch/dotproductsse.cpp:43:
../ccutil/platform.h:27:0: warning: "NOMINMAX" redefined
 #define NOMINMAX

In file included from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/c++/i686-w64-mingw32/bits/c++config.h:495:0,
                 from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/c++/cstdlib:41,
                 from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/c++/stdlib.h:36,
                 from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/mm_malloc.h:27,
                 from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/xmmintrin.h:34,
                 from /usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/emmintrin.h:31,
                 from ../arch/dotproductsse.cpp:40:
/usr/lib/gcc/i686-w64-mingw32/6.1-win32/include/c++/i686-w64-mingw32/bits/os_defines.h:45:0:
 note: this is the location of the previous definition
 #define NOMINMAX 1

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-29 14:37:10 +01:00
Stefan Weil
120a5dbdab Fix build for Mingw-w64
The old code (before commit 644469595c)
works well with Mingw-w64 which does not support this_thread.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-29 14:26:22 +01:00
Ray Smith
185a264f52 Fixed the memory leak/double free cleanly 2016-11-28 09:39:17 -08:00
Ray Smith
3d00d3bd94 Missing pdf font file from previous sync 2016-11-28 08:55:03 -08:00
Stefan Weil
f60ff4d575 cube/char_samp: Fix some memory leaks
Coverity report:

CID 1164722 (#9 of 9): Resource leak (RESOURCE_LEAK)
20. leaked_storage: Variable label32 going out of scope leaks the storage
 it points to.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-28 15:53:35 +01:00
Stefan Weil
614f44a7b2 cube/char_bigrams: Fix some memory leaks
Coverity report:

CID 1164717 (#1 of 1): Resource leak (RESOURCE_LEAK)
10. leaked_storage: Variable upper_32 going out of scope leaks
 the storage it points to.

CID 1164718 (#1 of 1): Resource leak (RESOURCE_LEAK)
10. leaked_storage: Variable lower_32 going out of scope leaks
 the storage it points to.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-28 15:53:35 +01:00
Stefan Weil
c46e773758 cube: Simplify delete operations
It is not necessary to check for null pointers.

Remove also unneeded delete operations and add missing delete operations
in cube/bmp_8.cpp.

Simplify also a conditional statement in cube/cube_object.cpp.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-28 15:48:36 +01:00
zdenop
d2389a810f Merge pull request #505 from amitdo/contributors-2
AUTHORS: Add more contributors
2016-11-27 21:31:22 +01:00
Amit D
ec99d9f2b2 AUTHORS: Add more contributors
and fix typo
2016-11-27 00:04:05 +02:00
Egor Pugin
7b5b16779a Merge pull request #494 from stweil/free
Simplify delete / free usage
2016-11-26 13:25:41 +03:00
Egor Pugin
0df77e3eef Merge pull request #501 from stweil/warn
lstm: Remove several unused variables
2016-11-26 13:24:10 +03:00
Egor Pugin
d0213fa56d Switch leptonica back to master. 2016-11-26 12:33:50 +03:00
zdenop
cf90e85697 Merge pull request #502 from stweil/ocl
opencl: Format and fix OpenCL kernel code
2016-11-25 17:45:43 +01:00
Stefan Weil
ba6961e0f4 opencl: Fix OpenCL kernel code assertion for newer versions
With Debian package beignet-opencl-icd 1.2.1-1, Tesseract + OpenCL fails:

[DS] Profile file not available (tesseract_opencl_profile_devices.dat); performing profiling.

[DS] Device: "Intel(R) HD Graphics IvyBridge M GT2" (OpenCL) evaluation...
ASSERTION FAILED: sel.hasDoubleType()
  at file /home/geier/beignet/backend/src/backend/gen_insn_selection.cpp, function void gbe::ConvertInstructionPattern::convertDoubleToSmallInts(gbe::Selection::Opaque&, const gbe::ir::ConvertInstruction&, bool&) const, line 5269
Trace/breakpoint trap

Using a pure float expression (instead of double) fixes this issue.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-25 17:41:30 +01:00
Stefan Weil
786b482ef8 opencl: Format OpenCL kernel code
* Remove some empty lines to get a more uniform code
* Fix #endif handling at end of file

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-25 17:39:06 +01:00
Stefan Weil
0020fbc0bd opencl: Clean whitespace issues in OpenCL kernel code
* Remove whitespace at line endings
* Replace tabs by spaces

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-25 17:36:05 +01:00
Stefan Weil
b04879412e lstm: Remove several unused variables
This fixes compiler warnings.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-25 15:43:39 +01:00
Stefan Weil
85e37798cb Simplify delete operations
It is not necessary to check for null pointers.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-24 17:59:13 +01:00
Stefan Weil
6158f7eae2 Simplify calls of free
It is not necessary to check for null pointers.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-24 17:59:13 +01:00
Egor Pugin
a8f444112e Fix build with leptonica 1.73. 2016-11-24 18:42:49 +03:00
Egor Pugin
b4fcd0d8b8 Set leptonica-1.73 as a dependency instead of master. 2016-11-24 18:35:33 +03:00
Egor Pugin
67deea5703 Fix unix build. 2016-11-24 17:39:16 +03:00