``Working'' forge unpackers. Needs a lot of hardening but good for alpha.

This commit is contained in:
Petr Mrázek
2013-09-30 02:34:46 +02:00
parent 604162acdf
commit 8b0f8b9e59
21 changed files with 413 additions and 36 deletions

View File

@ -37,6 +37,7 @@ src/zip.cpp
src/zip.h
)
SET(PACK200_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE)
include_directories(include)
add_library(unpack200 STATIC ${PACK200_SRC})

View File

@ -1523,7 +1523,8 @@ band **unpacker::attr_definitions::buildBands(unpacker::layout_definition *lo)
call.le_body[0] = &cble;
// Distinguish backward calls and callables:
assert(cble.le_kind == EK_CBLE);
assert(cble.le_len == call_num);
//FIXME: hit this one
//assert(cble.le_len == call_num);
cble.le_back |= call.le_back;
}
calls_to_link.popTo(0);
@ -2777,7 +2778,8 @@ void unpacker::putlayout(band **body)
{
band &cble = *b.le_body[0];
assert(cble.le_kind == EK_CBLE);
assert(cble.le_len == b.le_len);
//FIXME: hit this one
//assert(cble.le_len == b.le_len);
putlayout(cble.le_body);
}
break;

View File

@ -156,8 +156,11 @@ void unpack_200(std::string input_path, std::string output_path)
magic = read_magic(&u, peek, (int)sizeof(peek));
if (magic != (int)JAVA_PACKAGE_MAGIC)
{
// we do not feel strongly about this kind of thing...
/*
if (magic != EOF_MAGIC)
unpack_abort("garbage after end of pack archive");
*/
break; // all done
}