1389 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
c65a8d8b5f Added better support for the case when an optimized instruction can't be resolved due to the object register always being null. It should comment out any dead code following the unresolved instruction (to prevent verification issues, due to the changed method call)
git-svn-id: https://smali.googlecode.com/svn/trunk@455 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 06:40:58 +00:00
JesusFreke@JesusFreke.com
ddc8655d10 Fix some null checking logic
git-svn-id: https://smali.googlecode.com/svn/trunk@454 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 02:01:38 +00:00
JesusFreke@JesusFreke.com
cf4e7ce360 added another deodex test case
git-svn-id: https://smali.googlecode.com/svn/trunk@453 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 01:22:25 +00:00
JesusFreke@JesusFreke.com
61eedba1ab Fix a bug when creating a dex file that has a blank section for one of the indexed item types
git-svn-id: https://smali.googlecode.com/svn/trunk@452 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 06:58:50 +00:00
JesusFreke@JesusFreke.com
a6bf1ed0fe store types as strings, to allow for intermediate types that don't exist in the dex file
git-svn-id: https://smali.googlecode.com/svn/trunk@451 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 06:38:01 +00:00
JesusFreke@JesusFreke.com
c3deed2751 Added a tricky test case for the deodexer
git-svn-id: https://smali.googlecode.com/svn/trunk@450 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 05:15:40 +00:00
JesusFreke@JesusFreke.com
e942607e1a delete TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@449 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 05:09:45 +00:00
JesusFreke@JesusFreke.com
726d88404d Handle a rare case where deodexing an instruction invalidates a previously deodexed instruction somewhere else because of the new register information available
git-svn-id: https://smali.googlecode.com/svn/trunk@448 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 04:21:20 +00:00
JesusFreke@JesusFreke.com
8b260a1d81 Changed the instruction map to a Sparse array, plus various cleanup
git-svn-id: https://smali.googlecode.com/svn/trunk@447 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 03:40:31 +00:00
JesusFreke@JesusFreke.com
c2c37aed3b removed todo comment
git-svn-id: https://smali.googlecode.com/svn/trunk@446 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 01:44:48 +00:00
JesusFreke@JesusFreke.com
a3d7d2423d - removed insn.fixed
- added a merge table for the register type merge logic

git-svn-id: https://smali.googlecode.com/svn/trunk@445 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 01:43:57 +00:00
JesusFreke@JesusFreke.com
e6e9569227 change the field lookup to a field dump, and the inline method lookup to an inline method dump
git-svn-id: https://smali.googlecode.com/svn/trunk@444 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 23:05:53 +00:00
JesusFreke@JesusFreke.com
6fa95185b7 Added caching for the rest of the deodexerant commands
git-svn-id: https://smali.googlecode.com/svn/trunk@443 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 23:04:44 +00:00
JesusFreke@JesusFreke.com
f0e3677538 fix the "null" fixed instructions.. again
git-svn-id: https://smali.googlecode.com/svn/trunk@442 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:34:19 +00:00
JesusFreke@JesusFreke.com
7f91677f24 Add a check on the vtable index when doing a virtual method lookup
git-svn-id: https://smali.googlecode.com/svn/trunk@441 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:27:12 +00:00
JesusFreke@JesusFreke.com
665884682c - Add support for the change in deodexerant where it now dumps all vtable entries, instead of having to query for a specific one
- cache the vtable information we get from deodexerant

git-svn-id: https://smali.googlecode.com/svn/trunk@440 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:19:28 +00:00
JesusFreke@JesusFreke.com
4ef9fbbd21 Change the virtual method lookup to dump the entire vtable for the class
git-svn-id: https://smali.googlecode.com/svn/trunk@439 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:18:01 +00:00
JesusFreke@JesusFreke.com
285dfd013a Fix the registers in the dummy method calls used to replace null pointer method invokes/field accesses
git-svn-id: https://smali.googlecode.com/svn/trunk@438 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 08:27:52 +00:00
JesusFreke@JesusFreke.com
631326836e Add opcode parameter
git-svn-id: https://smali.googlecode.com/svn/trunk@437 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 07:28:06 +00:00
JesusFreke@JesusFreke.com
d24694eda4 minor cleanup
git-svn-id: https://smali.googlecode.com/svn/trunk@436 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 07:27:42 +00:00
JesusFreke@JesusFreke.com
5b89857df3 Initial commit of deodex functionality in dexlib and baksmali
git-svn-id: https://smali.googlecode.com/svn/trunk@435 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 06:27:32 +00:00
JesusFreke@JesusFreke.com
df2a55dee5 Initial commit of deodexerant
git-svn-id: https://smali.googlecode.com/svn/trunk@434 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 06:26:34 +00:00
JesusFreke@JesusFreke.com
5f98a29260 Add support for the odex only opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@432 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 04:28:11 +00:00
JesusFreke@JesusFreke.com
73a63516fc preliminary support for reading in odex files
git-svn-id: https://smali.googlecode.com/svn/trunk@431 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 02:32:27 +00:00
JesusFreke@JesusFreke.com
4a4fac96de Update the version to .96
git-svn-id: https://smali.googlecode.com/svn/trunk@430 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 02:31:42 +00:00
JesusFreke@JesusFreke.com
aaa11529d4 Check if the method is static to determine if there is an extra "this" register, not if it's a direct method
git-svn-id: https://smali.googlecode.com/svn/trunk@428 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-29 05:03:13 +00:00
JesusFreke@JesusFreke.com
2ec8d992d0 Don't use substraction to compare signed integral types, use comparisons
git-svn-id: https://smali.googlecode.com/svn/trunk@427 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 07:30:42 +00:00
JesusFreke@JesusFreke.com
e1b2408a8c Don't create a type list for prototypes with no paremeters
git-svn-id: https://smali.googlecode.com/svn/trunk@426 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 05:32:12 +00:00
JesusFreke@JesusFreke.com
fd427e41ea use the address, not the address delta when calling emitAdvancePC
git-svn-id: https://smali.googlecode.com/svn/trunk@425 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 05:31:21 +00:00
JesusFreke@JesusFreke.com
c604ed6c1a Add .hashcode and .equals to EncodedCatchHandler and EncodedTypeAddrPair, so that the TryListBuilder can build a unique hash to avoid duplicate EncodedCatchHandler entries
git-svn-id: https://smali.googlecode.com/svn/trunk@424 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 03:58:42 +00:00
JesusFreke@JesusFreke.com
0da75f71eb Initialize the offset of ClassDefItems to -1 before placing them
git-svn-id: https://smali.googlecode.com/svn/trunk@423 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 04:42:18 +00:00
JesusFreke@JesusFreke.com
e88cdf2010 If the ArrayData pseudo instruction has an odd size, write out a final padding byte
git-svn-id: https://smali.googlecode.com/svn/trunk@422 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 03:08:55 +00:00
JesusFreke@JesusFreke.com
59cc9d09b7 Sort the ClassDefItems by offset after placing them
git-svn-id: https://smali.googlecode.com/svn/trunk@421 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 03:07:57 +00:00
JesusFreke@JesusFreke.com
af88d65aac Compare values using compareTo, not compareValue
git-svn-id: https://smali.googlecode.com/svn/trunk@420 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 02:38:23 +00:00
JesusFreke@JesusFreke.com
97da4a7699 Check for nulls
git-svn-id: https://smali.googlecode.com/svn/trunk@419 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:33:40 +00:00
JesusFreke@JesusFreke.com
3c48a886bd Add padding if needed
git-svn-id: https://smali.googlecode.com/svn/trunk@418 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:33:18 +00:00
JesusFreke@JesusFreke.com
4da483a55b use assert. duh
git-svn-id: https://smali.googlecode.com/svn/trunk@417 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:14:35 +00:00
JesusFreke@JesusFreke.com
e9c67dbb9c use unsigned shift while writing an unsigned leb128
git-svn-id: https://smali.googlecode.com/svn/trunk@416 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 01:16:26 +00:00
JesusFreke@JesusFreke.com
2773319471 Fixes for a few instruction formats that have a blank byte after the opcode
git-svn-id: https://smali.googlecode.com/svn/trunk@415 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 00:58:14 +00:00
JesusFreke@JesusFreke.com
c74042b943 Add a convenience method that accepts a string instead of a StringIdItem
git-svn-id: https://smali.googlecode.com/svn/trunk@414 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:48:14 +00:00
JesusFreke@JesusFreke.com
3687f27ddd When interning an item, don't forget to add the item to the items list
git-svn-id: https://smali.googlecode.com/svn/trunk@413 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:47:29 +00:00
JesusFreke@JesusFreke.com
7eca83ddb6 Various changes mostly relating to changing the getInterned* item methods to accept lists instead of arrays
git-svn-id: https://smali.googlecode.com/svn/trunk@412 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:46:45 +00:00
JesusFreke@JesusFreke.com
eb21bb1783 use java's assert
git-svn-id: https://smali.googlecode.com/svn/trunk@411 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:45:10 +00:00
JesusFreke@JesusFreke.com
83e6f4bb60 Changed the "from-scratch" constructor in the format classes to a static emit method
git-svn-id: https://smali.googlecode.com/svn/trunk@410 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:42:49 +00:00
JesusFreke@JesusFreke.com
f75a5c351c Change getInternedAnnotationDirectoryItem to accept lists of composite item+annotation objects instead of separate arrays of everything
git-svn-id: https://smali.googlecode.com/svn/trunk@409 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 20:08:52 +00:00
JesusFreke@JesusFreke.com
ea64b6e653 Change TypeListItem constructor to take an array rather than a list, to be consistent with other classes
git-svn-id: https://smali.googlecode.com/svn/trunk@408 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 07:11:42 +00:00
JesusFreke@JesusFreke.com
11503ec26e Merged in DebugInfoBuilder.java from the prior dexlib, and fixed it up to work with the new dexlib
git-svn-id: https://smali.googlecode.com/svn/trunk@407 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 06:28:54 +00:00
JesusFreke@JesusFreke.com
3080fb1bfc Merged in TryListBuilder.java from the prior dexlib, and fixed it up to work with the new dexlib
git-svn-id: https://smali.googlecode.com/svn/trunk@406 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 05:05:04 +00:00
JesusFreke@JesusFreke.com
1877b664de When making a ClassDataItem from scratch, sort the fields and methods
git-svn-id: https://smali.googlecode.com/svn/trunk@405 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 03:43:19 +00:00
JesusFreke@JesusFreke.com
b90597bd9b When making a ClassDefItem from scratch, sort the static field initializers appropriately
git-svn-id: https://smali.googlecode.com/svn/trunk@404 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 03:41:27 +00:00