Question

The following is snipcode disassembled using dedexer on a android market app, in the invoke-virtual, I don't understand what can the original Java code be:

invoke-virtual {v0},[Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;/clone ; clone()Ljava/lang/Object;

The [ is supposed to be an array, then is it invoking the clone method on element in the array of type com/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType? Then why there is ; between the class name and method name clone? A bug in the dedexer itself?

Was it helpful?

Solution

Class names begin with an 'L' and end with a ';'. So [Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType; is an array of com.google.android.providers.AbstractGDataSyncAdapter.ClientDiffType

I don't know what the '/clone ;' syntax is though. It does seem like it might be a bug in dedexer. The clone() right after that is obviously the method.

"then is it invoking the clone method on element in the array" - this is incorrect. It is invoking the clone method on the whole array, not on an element in the array.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top