Julian Dolby
a1dd19b8d0
Merge branch 'pull-request__android-bugfixes' of https://github.com/joana-team/WALA
2017-03-11 16:56:09 -05:00
Julian Dolby
ef1994e146
Merge branch 'master' of https://github.com/wala/WALA
2017-03-11 16:21:16 -05:00
Julian Dolby
db65c16863
Merge branch 'pull-request__typeannotations' of https://github.com/joana-team/WALA
2017-03-11 16:19:50 -05:00
Julian Dolby
6a8696e6e1
Merge pull request #118 from joana-team/pull-request__dalvik_typeinference
...
Make a variant of TypeInference which supports dalvik bytecode
2017-03-11 16:12:50 -05:00
Julian Dolby
ffe355bc74
Merge branch 'warning-fixes-model-behavior-class' of https://github.com/liblit/WALA
2017-03-11 13:45:20 -05:00
Julian Dolby
f595eb357e
add some abstraction to IR, using IRView
2017-03-11 13:22:45 -05:00
Julian Dolby
016c3940e8
Merge branch 'pull-request__misc-bugfixes' of https://github.com/joana-team/WALA
2017-03-09 08:59:40 -05:00
Julian Dolby
d24519e974
cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble.
2017-02-02 20:33:27 -05:00
Martin Mohr
467bf8038d
implement hashCode() and equals() for DexModuleEntry
2017-01-26 15:41:42 +01:00
Martin Mohr
64823846c0
get rid of HashCodeComparator and all its usages
...
This addresses both https://github.com/wala/WALA/issues/133 and
https://github.com/wala/WALA/issues/88
2017-01-26 14:16:48 +01:00
Martin Mohr
4228bac5ff
If we see a call to an unknown method, conservatively add edges to all catch handlers
...
This is an attempt to fix issue #123
2016-12-09 16:46:01 +01:00
Martin Mohr
ee22e177c5
Dalvik-Frontend: add catch-all handler at the end and not at the beginning
2016-12-09 16:40:14 +01:00
Martin Mohr
6d0ba7d371
Make a variant of TypeInference which supports dalvik bytecode
...
Dalvik bytecode represents 'null' as 0 which may lead to problems
in phi instructions. This variant of TypeInference fixes these
problems by
- tracking whether an SSA value is constant zero and
- ignoring constant zeros in the transfer function of phi instructions
when meeting with non-primitive types
2016-12-07 16:34:13 +01:00
Martin Mohr
9ada546c5d
Activity.onStop is part of the loop
2016-12-07 16:11:19 +01:00
Martin Mohr
9a3e869dd1
use pi nodes in dalvik frontend
2016-12-07 16:11:19 +01:00
Martin Mohr
fd2d4aefbf
further fixes in dalvik front-end to avoid NullPointerExceptions and other errors
2016-12-07 16:11:19 +01:00
Martin Mohr
42ae088c05
turn exception throwing into debug logging message
2016-12-07 16:11:19 +01:00
Martin Mohr
a8cb767c63
allow action names starting with "."
...
According to [1], such action names are allowed and implicitly to be
prepended with the package name of the application.
[1] http://developer.android.com/guide/topics/manifest/activity-element.html
2016-12-07 16:11:19 +01:00
Martin Mohr
7c657f5754
allow unqualified custom actions
2016-12-07 16:11:19 +01:00
Martin Mohr
be635cf50d
support for activity aliases
2016-12-07 16:11:19 +01:00
Martin Mohr
92f26a33c2
clarification
2016-12-07 16:11:19 +01:00
Martin Mohr
95031461f4
handle gracefully the case of intent-filter without action
...
According to [1], such intent-filters do not let any intent
pass but on the other hand do no harm
[1] http://developer.android.com/guide/topics/manifest/action-element.html
2016-12-07 16:11:19 +01:00
Martin Mohr
a1fa8a2057
update intent information instead of crashing
2016-12-07 16:11:18 +01:00
Martin Hecker
8e773fcf88
in order to look up instruction-indices from a bytecode-indices, do a binary search on the existing pcMap array (as suggested by Julian Dolby).
...
also see https://sourceforge.net/p/wala/mailman/message/35518796/ and answers.
2016-12-05 18:52:37 +01:00
Ben Liblit
b3293ecc3e
Enforce restrictions on the model behavior class statically
...
If a client violates these restrictions, I prefer that their code fail
at compile time instead of run time. Changing a few key types from
`Class` to `Class<? extends AbstractAndroidModel>` gives us precisely
the static enforcement we need and lets us remove an
`AbstractAndroidModel.class.isAssignableFrom` run-time check.
However, this does change the public API of `AndroidEntryPointManager`
in two ways. The `getModelBehavior` and `setModelBehavior` methods now
respectively accept and return `Class<? extends AbstractAndroidModel>`
instead of `Class`. Is tightening up a public API in this manner
considered OK?
2016-11-26 22:39:37 -06:00
Julian Dolby
7d7dd17a47
minor fix to getting method annotations for dalvik
2016-07-28 16:11:16 -04:00
Julian Dolby
76286a330c
make Android entrypoint locator work for source code
2016-06-10 21:21:08 -04:00
Julian Dolby
2b2543cfbb
fixed bugs with switch bytecodes in Dalvik.
...
ignore exceptions in callgraph construction when they are ignored in
bytecode from Dalvik.
2015-11-13 19:25:23 -05:00
Julian Dolby
d010e36923
fix for NOP instructions
2015-11-13 09:57:02 -05:00
Manu Sridharan
ce10710125
Avoid repeatedly initializing possibleEntryPoints
...
Added while investigating #88 , but this does not fix the problem
2015-10-11 16:12:13 -07:00
Julian Dolby
5517371a9b
adapt to IField changes
2015-09-16 13:25:53 -04:00
Julian Dolby
3ddaa9eaf7
restore EPL headers
2015-08-13 12:34:34 -04:00
Julian Dolby
045537274f
merge
2015-08-13 11:26:48 -04:00
Julian Dolby
671bd98977
Java 8 suport enhancements, mostly to model lambdas compiled to
...
invokedynamic
2015-08-12 15:20:21 -04:00
Martin Mohr
8d143dbf20
remove 'Custom Change' markers
2015-06-25 09:12:37 +02:00
Martin Mohr
0583450884
fix whitespace
2015-06-22 10:45:26 +02:00
Martin Mohr
f4cef8db7a
dalvik frontend: set target for SSAGotoInstructions
2015-06-22 10:45:26 +02:00
Martin Mohr
cecd2c950f
support multiple intent actions and urls in manifest parser
2015-06-14 23:34:33 -07:00
Martin Mohr
a56eeae51a
kill deprecated method together with the last call of it
2015-06-14 23:33:43 -07:00
Martin Mohr
4bc25d3ddf
also model outer loops as indefinite instead of infinite
2015-06-14 23:33:18 -07:00
Martin Mohr
441cc6f279
bugfix in model: close inner loop using a *conditional* goto
...
This way, the rest of the outer loop (including the jump to the
beginning) is also reached in the control-flow which means that
the outer loop is modelled as a proper loop
2015-06-14 23:31:35 -07:00
Martin Mohr
ccb5b02abd
do not add self-loops
2015-06-14 23:31:35 -07:00
Martin Mohr
cfadf0104c
substitute call to deprecated method
2015-06-14 23:31:35 -07:00
Martin Mohr
b1c10b642f
finish all sections only if a section was entered
2015-06-14 23:31:00 -07:00
Martin Mohr
cfa005203a
cover corner case of intent or intent's action being null
2015-06-14 23:31:00 -07:00
Martin Mohr
9c4c3507c4
cover corner case of method being null
2015-06-14 23:31:00 -07:00
Martin Mohr
3e4af27112
allow resetting the AndroidEntryPointManager - this is rudimentary support for running the android front-end *multiple times within the same VM*
2015-06-14 23:30:41 -07:00
Martin Mohr
b5092637c8
improve recognition of intent action
2015-06-14 23:29:27 -07:00
Martin Mohr
8610ac29c7
allow to retrieve Android Model Class with different cha
2015-06-14 23:29:27 -07:00
Martin Mohr
7e3fb18fc0
BUGFIX: when reusing ssa value numbers, consider the case that an instruction may not have a def
2015-06-14 23:29:10 -07:00