Merge pull request #2430 from collinjackson/cmd_size_limit

Support for jars with large numbers of classes
This commit is contained in:
Collin Jackson 2016-02-27 15:42:17 -08:00
commit a24a4eab08

View File

@ -73,13 +73,15 @@ def ExtractToc(disassembled_classes):
def UpdateToc(jar_path, toc_path):
classes = GetClassesInZipFile(zipfile.ZipFile(jar_path))
toc = ''
if len(classes) != 0:
javap_output = CallJavap(classpath=jar_path, classes=classes)
toc = ExtractToc(javap_output)
toc = []
limit = 1000 # Split into multiple calls to stay under command size limit
for i in xrange(0, len(classes), limit):
javap_output = CallJavap(classpath=jar_path, classes=classes[i:i+limit])
toc.append(ExtractToc(javap_output))
with open(toc_path, 'w') as tocfile:
tocfile.write(toc)
tocfile.write(''.join(toc))
def DoJarToc(options):