cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use

picked (without the tests) from
https://github.com/android/platform_dalvik/commit/a669206dc91323e664a84b2a4ca170ec0332c926

dependencies removal

Change-Id: Ice0a9672144bfe654622e4e8d0020a3f0053466d
Undecoded jobject leaking in through attachThread

picked from
https://android-review.googlesource.com/#/c/23058/
Restore fp after calling JNI method in allstubs interpreter

The allstubs interpreter uses self->interpSave.curFrame as fp.
The invokeMethod native code sets self->interpSave.curFrame directly
effectively updating fp, so restore fp after the call has completed.

original Id: I0ffb15b71a48c2780251bbcd66e551bb0a52fe94
Signed-off-by: Chris Dearman <chris@mips.com>

Conflicts:

	vm/mterp/c/gotoTargets.c
	vm/mterp/out/InterpC-allstubs.c
	vm/mterp/out/InterpC-portdbg.c
	vm/mterp/out/InterpC-x86-atom.c
	vm/mterp/out/InterpC-x86.c
resolved:) and adapted to gingerbread

picked from
https://android-review.googlesource.com/#/c/31824/
Fixing a crash when doing lock profiling

This is a fix for a crash that can happen when logging Contention
events. This logging is performed when lock profiling is enabled.
This is by default enabled on userdebug builds. The crash happened
when a thread was being destroyed. When a thread is being
destroyed it is normal that the frame depth is zero, and thus the
current frame is null. logContentionEvent() requires that the
current frame is not null, or it will crash.

The fix is to check if the current frame is null, before calling
logContentionEvent().

original Id: I4c2b9ad94b663398645497fdffa1ec6f7ea86a51

picked from
https://android-review.googlesource.com/21321
Merge "Fixing a crash when doing lock profiling" into gingerbread
Merge "cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use" into gingerbread
Merge "Restore fp after calling JNI method in allstubs interpreter" into gingerbread
Merge "Undecoded jobject leaking in through attachThread" into gingerbread
Don't pay for filename/line number lookup unless you need to.

picked from
https://github.com/android/platform_dalvik/commit/6cd72bd0161459e21d496b927967bd0ca6fe0f94
remove dependencies

Change-Id: I0040d6628feac782e286fa0307bc4df3ce140be0
Merge remote-tracking branch 'cm/gingerbread' into gingerbread