- Reuse the TU from the open editor if present, otherwise load it from
workspace
- Added test plugin org.eclipse.cdt.codan.checkers.ui.test
Change-Id: I725b7b8e462ffba39dd6c9a828ab72dd58f86b1f
Signed-off-by: Dominic Scharfe <dominic.scharfe@coseda-tech.com>
Build Console needs to be started before
OutputStream and ErrorStream are retrieved for the Sniffer.
Change-Id: I1aea84ca9fa2e6806cb07513bb2c9cad47c11617
Signed-off-by: Dan Crosscup <tunzis@gmail.com>
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.
Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.
Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`
Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.
Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.
Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.
Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.
Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.
Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Every time we report a problem in a declaration/expression that occupies more
than one line, the codan marks the entire line as a problem - including
everything before the node. This patch solves this inconvenient behavior.
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=486610 for a complete
explanation.
Change-Id: I742cbaac8a1392676695d574355597b0cfc87385
Signed-off-by: Alisson Linhares de Carvalho <arescarv@gmail.com>
getAdaptable() in 4.5 M6 has changed to use generics, making casting its
result no longer necessary.
Change-Id: Idd943216a925576bb72c784b2c5a2a4b8e8b00d2
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
- refactored the code so client who run codan always go though builder
to call checkers
- added vm arg -Dcodan.disabled=true to be used mostly by junit to not
run codan at all
Change-Id: Ie85e20f23b6ded8fffe5064adc1f9193a6f9a146