Exemplo n.º 1
0
jboolean Jvm_inflate(void *data, JvmGetByteProc getByteProc,
                     int compLen, unsigned char** outFileH,
                     int decompLen)
{  
  SETUP_ERROR_CHECKER_ARG;
  UsingFastOops fast_oops;

  Inflater::Fast inflater = Inflater::allocate(NULL, 0, decompLen, compLen, 0,
                                               0 JVM_NO_CHECK);
  if (!CURRENT_HAS_PENDING_EXCEPTION) {
    unsigned char* in_data = ARRAY_BASE(inflater().in_buffer());
    for (int i = 0; i < compLen; i++) {
      *in_data++ = getByteProc(data);
    }
    
    Buffer::Raw result = inflater().read_completely(JVM_SINGLE_ARG_NO_CHECK);
    if (result.not_null() && !CURRENT_HAS_PENDING_EXCEPTION) {
      jvm_memcpy(*outFileH, result().base_address(), decompLen);
      return KNI_TRUE;
    }
  }
  
  Thread::clear_current_pending_exception();
  return KNI_FALSE;
}
Exemplo n.º 2
0
    /* 0 */
    CF_DWORD0(ADDR(4)),
    CF_DWORD1(POP_COUNT(0),
      CF_CONST(0),
      COND(SQ_CF_COND_ACTIVE),
     /* I_COUNT(1),*/ 0,
      CALL_COUNT(0),
      END_OF_PROGRAM(0),
      VALID_PIXEL_MODE(0),
      CF_INST(SQ_CF_INST_VTX),
      WHOLE_QUAD_MODE(0),
      BARRIER(1)),
    /* 1 */
    CF_ALLOC_IMP_EXP_DWORD0(
      ARRAY_BASE(CF_POS0),
      TYPE(SQ_EXPORT_POS),
      RW_GPR(0),
      RW_REL(ABSOLUTE),
      INDEX_GPR(0),
      ELEM_SIZE(0)),
    CF_ALLOC_IMP_EXP_DWORD1_SWIZ(
      SRC_SEL_X(SQ_SEL_X),
      SRC_SEL_Y(SQ_SEL_Y),
      SRC_SEL_Z(SQ_SEL_0),
      SRC_SEL_W(SQ_SEL_1),
      R6xx_ELEM_LOOP(0),
      BURST_COUNT(0),
      END_OF_PROGRAM(0),
      VALID_PIXEL_MODE(0),
      CF_INST(SQ_CF_INST_EXPORT_DONE),