Commit Graph

39 Commits

Author SHA1 Message Date
Julian Dolby bb0f38338e Merge branch 'warning-fixes-resource-management' of https://github.com/liblit/WALA 2017-03-13 10:44:38 -04:00
Ben Liblit b1678882b3 Plug numerous potential resource leaks
This fixes 33 out of 37 Eclipse "Potential resource leak: '...' may
not be closed" warnings.  It also fixes 3 out of 37 Eclipse "Resource
'...' should be managed by try-with-resource" warnings, although that
was not the main focus of this effort.

The remaining 4 warnings about potential resource leaks all involve a
leaked JarFile instance that is passed to a JarFileModule constructor
call.  JarFileModile never attempts to close its underlying JarFile;
this code is written as though JarFile cleanup were the caller's
responsibility.  However, the JarFile often cannot be closed by the
code that creates the JarFileModule either, since the JarFile needs to
remain open while the JarFileModule is in use, and some of these
JarFileModules stay around beyond the lifetime of the code that
created them.  Truly fixing this would essentially require making
JarFileModule implement Closeable, which in turn would probably
require that Module implement Closeable, which in turn would require
changes to lots of code that deals with Module instances to arrange
for them to be properly closed.  That's more invasive than I'm
prepared to take on right now.
2017-03-12 21:38:43 -05:00
Ben Liblit 994a70500f Remove redundant generic type parameters where possible
Instead, rely on Java's ability to infer type parameters in many
contexts.  This removes 665 Eclipse warnings.

Note: a few of these changes are to files under "test" subdirectories.
Presumably those are files that serve as test inputs rather than being
part of WALA code proper.  As far as I can tell, these changes do not
break any WALA tests.  But if any of those tests were specifically
intended to exercise WALA on code with non-inferred generic type
parameters, then I really should be leaving those alone.
2017-03-11 21:20:51 -06: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
Julian Dolby 602800524b Hacks to make WALA run on TeaVM, and hence be able to run in Web browsers. TeaVM has some warts, but overall it is a very nice mechanism to run Java code on the browser. I have examples of analysis actually running in Firefox, which enables supportive tools. So, for those changes that are not ideal, such as dropping the ConcurrentHashMap in ClassHierarchy, we should find a way to support both them and TeaVM, based on demand. 2017-01-12 12:25:37 -05:00
Julian Dolby 70dac5ca69 support for more languages 2017-01-05 14:09:52 -05:00
Cosmin Radoi 853b5fc37a replace Filter with Predicate 2014-11-25 13:23:47 -06:00
Michael Heilmann ea40719069 Merge branch 'master' of https://github.com/wala/WALA into development 2014-06-26 17:52:47 +02:00
Michael Heilmann 0bb5e6998e Remove redundant casts and imports, improve doc comments 2014-06-26 17:51:26 +02:00
Julian Dolby 88487d55da expose matcher to allow specialization 2014-06-26 11:07:31 -04:00
Julian Dolby e58ec4dba8 new special parent scope for cases where JavaScript redefines a variable using a reference to the existing definition 2014-06-26 11:05:43 -04:00
Julian Dolby a00b4ae47b bug fixes for source buffers when the source files is all on a single
line
2014-05-20 13:11:58 +02:00
Julian Dolby 038a39dbf5 bug fixes for source buffers when the source files is all on a single
line
2014-04-29 11:21:58 -04:00
Julian Dolby 0ccaae3b2c pull exclusions file support into util project and then share it with
the shrike-based dynamic call graph builder so that static and dynamic
graphs can be built consistently more easily.
2013-11-14 13:02:56 -05:00
Julian Dolby 56236dec53 further work on analysis for JavaScript in Eclipse 2013-10-16 17:37:53 -04:00
Julian Dolby 080325b5f6 merge 2013-06-25 11:57:37 -04:00
Manu Sridharan 3b1889121b add missing copyright headers 2013-05-22 15:39:19 -07:00
dolby 5f0b0ea956 Two fixes for mapping source positions to IR
1: get the right position for methods from the JDT AST
2: more seriously, there was a nasty bug in how source positions got
mapped in unwound code: mappings were wrong for instructions that
were the result of duplicating code to replicate unwind handling in
exceptional and non-local exits.
2012-08-30 12:10:30 -04:00
dolby b6ee356641 tests for source mapping 2012-05-11 15:03:10 -04:00
dolby-oss a9ec87f360 Changes motivated by analysis issues in JavaScript. The main change is that calls of the form f.x() in JavaScript are now analyzed like 'method calls' so that the 'this' pointer in the receiver functions can be filtered based upon the types that actually have the method being invoked. This requires much more dynamic filtering than in a language like Java, since properties like 'x' are simply properties that happen to hold functions, and so can be assigned in a first-class manner. Thus, the filtering needs to handle variance in both the types and the values of their properties; this is implemented as multiple levels of abstract object directed side effect equations in the dataflow system.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4535 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-01 02:45:51 +00:00
msridhar1 24574114b9 Taught CAstPrinter about EACH_ELEMENT_GET and EACH_ELEMENT_HAS_NEXT.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4436 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:31:52 +00:00
dolby-oss 4c6d062dbb blunt force trauma to CAst frond end:
1) Structural changes in the AstTranslator to allow retranslation and generation of custom IR.  This is mostly moving state from the translator itself into the context.
2) Some refactoring to share some AST generation code across the Java and JavaScript front ends.
3) Switching to the latest Rhino, release 1.7R3; this is a pervasive change to the JavaScript Rhino translator, since it involves switching to the new AST interface in Rhino.
4) Common code to, as an option, translate Do-style loops by replicating the loop body.  This allows the use of CAstNode.LOOP forms for such loops.
5) Some bug fixes to the mechanisms of the CAstRewriter to handle weird control flow cases.
6) An example of retranslation to specialize JavaScript methods based on how many arguments they receive at call sites.


git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4425 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-27 20:15:33 +00:00
msridhar1 f763f34fda Added support for CAstNode.IS_DEFINED_EXPR to CAstPrinter.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4301 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:17:52 +00:00
sjfink 9939142eae switch from Assertions._assert to Java assertions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3555 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-30 13:16:52 +00:00
sjfink 957cb2b8ca deprecate Trace
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3432 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-09 20:31:14 +00:00
dolby-oss 3e198f8244 merge of development on internal branch. Support for cross-building JNI code for Windows, and refactoring of abstract loader support.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3242 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-02-26 16:54:30 +00:00
dolby-oss 9979d0899c more fixes to lexical scoping for JavaScript
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3196 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-01-30 16:33:22 +00:00
dolby-oss d1294698bd committed patch from Evan Battaglia to support outer.new inner() form. Thanks!
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2590 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-02-18 15:16:16 +00:00
sjfink 9e79661c60 just refactoring ... introduce 2 new packages in wala.util.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2447 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-01-24 22:05:51 +00:00
dolby-oss 6e3039613b pathc for file offsets in Positions from Evan Battaglia; make native translator to CAst more robust to errors
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2189 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-12-14 21:11:19 +00:00
sjfink a8b61ccb17 misc. cleanups
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2044 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-11-16 20:51:04 +00:00
sjfink c91caedab6 use Hash factories everywhere
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@1435 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-07-11 21:07:32 +00:00
sjfink 39da63410a massive overhaul of Warnings management
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@1390 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-07-06 22:09:29 +00:00
dolby-oss eb86207d02 fix to index error from Nick
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@1325 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-06-28 14:49:19 +00:00
dolby-oss 8472f026f5 support for cross-language call graphs
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@1215 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-06-01 03:31:35 +00:00
sjfink 05e1f973a6 squash remaining Eclipse warnings
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@700 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-02-09 15:33:45 +00:00
sjfink a92bff31bb some generics
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@692 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-02-08 20:45:07 +00:00
sjfink f4fef68587 miscellaneous minor cleanups. eclipse build stuff. import statements.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@680 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-02-08 19:08:31 +00:00
dolby-oss 3d9390a397 Initial contribution of core script analysis code
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@616 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2007-02-02 17:17:13 +00:00