awslabs / aws-c-common
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 11% duplication:
    • 17,857 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,127 duplicated lines
  • 212 duplicates
system11% (2,127 lines)
Duplication per Extension
c12% (1,470 lines)
inl19% (435 lines)
h7% (192 lines)
cmake3% (30 lines)
Duplication per Component (primary)
verification/cbmc/proofs24% (685 lines)
include/aws/common11% (496 lines)
source5% (354 lines)
source/posix18% (159 lines)
verification/cbmc/stubs24% (137 lines)
include/aws/testing37% (131 lines)
source/windows14% (129 lines)
cmake3% (30 lines)
source/android7% (6 lines)
source/arch/generic0% (0 lines)
source/arch/intel0% (0 lines)
source/arch/arm0% (0 lines)
AWSCRTAndroidTestRunner/app/src0% (0 lines)
verification/cbmc/sources0% (0 lines)
verification/cbmc/uninline0% (0 lines)
verification/cbmc/include0% (0 lines)

Duplication Between Components (50+ lines)

G source/posix source/posix source/windows source/windows source/posix--source/windows 234 include/aws/common include/aws/common source source include/aws/common--source 76

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 212 duplicates...
Size#FoldersFilesLinesCode
36 x 2 include/aws/common/private
include/aws/common/private
inl
lookup3.inl
lookup3.inl
395:437 (6%)
589:631 (6%)
view
32 x 2 include/aws/common/private
include/aws/common/private
inl
lookup3.inl
lookup3.inl
441:479 (5%)
635:673 (5%)
view
23 x 2 include/aws/common/private
include/aws/common/private
inl
lookup3.inl
lookup3.inl
320:367 (4%)
513:560 (4%)
view
22 x 2 source/posix
source/windows
file.c
file.c
63:100 (15%)
97:134 (7%)
view
21 x 2 include/aws/testing
include/aws/testing
aws_test_harness.h
aws_test_harness.h
276:296 (5%)
317:337 (5%)
view
17 x 2 verification/cbmc/proofs/aws_array_eq
verification/cbmc/proofs/aws_array_eq_ignore_case
aws_array_eq_harness.c
aws_array_eq_ignore_case_harness.c
11:33 (65%)
11:33 (70%)
view
17 x 2 verification/cbmc/proofs/aws_byte_buf_eq
verification/cbmc/proofs...byte_buf_eq_ignore_case
aws_byte_buf_eq_harness.c
aws_byte_buf_eq_ignore_case_harness.c
11:32 (65%)
11:32 (70%)
view
17 x 2 verification/cbmc/proofs/aws_byte_cursor_eq
verification/cbmc/proofs...e_cursor_eq_ignore_case
aws_byte_cursor_eq_harness.c
aws_byte_cursor_eq_ignore_case_harness.c
11:32 (60%)
11:32 (65%)
view
15 x 2 verification/cbmc/proofs...e_cursor_compare_lookup
verification/cbmc/proofs...e_cursor_eq_ignore_case
aws_byte_cursor_compare_lookup_harness.c
aws_byte_cursor_eq_ignore_case_harness.c
20:37 (53%)
15:32 (57%)
view
15 x 2 cmake
cmake
cmake
AwsTestHarness.cmake
AwsTestHarness.cmake
53:69 (19%)
78:94 (19%)
view
15 x 2 verification/cbmc/proofs...e_cursor_compare_lookup
verification/cbmc/proofs/aws_byte_cursor_eq
aws_byte_cursor_compare_lookup_harness.c
aws_byte_cursor_eq_harness.c
20:37 (53%)
15:32 (53%)
view
14 x 2 include/aws/common/private
include/aws/common/private
inl
lookup3.inl
lookup3.inl
214:232 (2%)
260:278 (2%)
view
14 x 2 verification/cbmc/proofs...byte_cursor_eq_byte_buf
verification/cbmc/proofs...eq_byte_buf_ignore_case
aws_byte_cursor_eq_byte_buf_harness.c
aws_byte_cursor_eq_byte_buf_ignore_ca...
11:28 (58%)
11:28 (63%)
view
14 x 2 verification/cbmc/proofs/aws_byte_cursor_advance
verification/cbmc/proofs...e_cursor_advance_nospec
aws_byte_cursor_advance_harness.c
aws_byte_cursor_advance_nospec_harness.c
29:44 (56%)
29:44 (56%)
view
14 x 2 include/aws/common/private
include/aws/common/private
inl
lookup3.inl
lookup3.inl
375:389 (2%)
569:583 (2%)
view
13 x 2 source/posix
source/windows
environment.c
environment.c
11:30 (65%)
11:40 (61%)
view
13 x 2 source/posix
source/windows
thread.c
thread.c
52:66 (6%)
23:37 (5%)
view
12 x 2 verification/cbmc/proofs/aws_byte_cursor_eq_c_str
verification/cbmc/proofs...or_eq_c_str_ignore_case
aws_byte_cursor_eq_c_str_harness.c
aws_byte_cursor_eq_c_str_ignore_case_...
11:26 (54%)
11:26 (60%)
view
12 x 2 verification/cbmc/proofs/aws_ring_buffer_acquire
verification/cbmc/proofs...ng_buffer_acquire_up_to
aws_ring_buffer_acquire_harness.c
aws_ring_buffer_acquire_up_to_harness.c
48:60 (30%)
38:50 (40%)
view
12 x 2 source/posix
source/windows
thread.c
thread.c
78:108 (5%)
46:64 (5%)
view
Duplicated Units
The list of top 10 duplicated units.
See data for all 10 unit duplicates...
Size#FoldersFilesLinesCode
13 x 2 source/posix
source/windows
file.c
file.c
63:81 
97:115 
view
13 x 2 source/posix
source/windows
thread.c
thread.c
409:423 
379:393 
view
13 x 2 include/aws/common
include/aws/common
inl
math.fallback.inl
math.fallback.inl
110:124 
130:144 
view
12 x 2 include/aws/common
include/aws/common
inl
math.gcc_x64_asm.inl
math.gcc_x64_asm.inl
112:126 
147:161 
view
11 x 2 source/posix
source/windows
thread.c
thread.c
85:110 
53:66 
view
11 x 2 source
source
fifo_cache.c
lru_cache.c
43:59 
55:72 
view
6 x 2 source/android
source
logging.c
log_formatter.c
22:29 
36:43 
view
6 x 2 include/aws/common
include/aws/common
inl
math.inl
math.inl
60:67 
73:80 
view
6 x 2 include/aws/common
include/aws/common
inl
math.gcc_builtin.inl
math.msvc.inl
39:45 
141:147 
view
6 x 2 include/aws/common
include/aws/common
inl
math.gcc_builtin.inl
math.msvc.inl
66:72 
176:182 
view