Sparrow

From Ornithe Wiki
Jump to navigation Jump to search

Sparrow is Ornithe's generics patch. It is used to modify generic type signatures in Java class files.

See Signature Changer for information on generic type signatures and how these patches are applied.

Relevance

Most Minecraft versions before 1.8.2 Pre-release 5 had the generic type signatures stripped from the jar. Sparrow was created in an effort to reconstruct what the original generics would have been in the source code.

File Specification

The .sigs file format was originally created by Gaming32. .sigs files are UTF-8 encoded text files. A line has the following format.

<class name>	[<class signature>]
	<member name>	<member type descriptor>	<member signature>
	...
...
  • class name: the internal name of the class.
  • class type signature: the generic type signature of the class (optional).
  • member name: the name of the field or method.
  • member type descriptor: the type descriptor of the field or method.
  • member signature: the generic type signature of the field or method.

Notes

The file format does not support generic type signatures for local variables.

The class type signature and member type signature values can be set to . to signal that the generic type signature should be removed from that class or class member respectively.