522 /* To get name string */ |
522 /* To get name string */ |
523 err = ps_pread(J->P, constMethod + OFFSET_constMethodOopDesc_name_index, &nameIndex, 2); |
523 err = ps_pread(J->P, constMethod + OFFSET_constMethodOopDesc_name_index, &nameIndex, 2); |
524 CHECK_FAIL(err); |
524 CHECK_FAIL(err); |
525 err = read_pointer(J, constantPool + nameIndex * POINTER_SIZE + SIZE_constantPoolOopDesc, &nameSymbol); |
525 err = read_pointer(J, constantPool + nameIndex * POINTER_SIZE + SIZE_constantPoolOopDesc, &nameSymbol); |
526 CHECK_FAIL(err); |
526 CHECK_FAIL(err); |
527 err = ps_pread(J->P, nameSymbol + OFFSET_symbolOopDesc_length, &nameSymbolLength, 2); |
527 err = ps_pread(J->P, nameSymbol + OFFSET_Symbol_length, &nameSymbolLength, 2); |
528 CHECK_FAIL(err); |
528 CHECK_FAIL(err); |
529 nameString = (char*)calloc(nameSymbolLength + 1, 1); |
529 nameString = (char*)calloc(nameSymbolLength + 1, 1); |
530 err = ps_pread(J->P, nameSymbol + OFFSET_symbolOopDesc_body, nameString, nameSymbolLength); |
530 err = ps_pread(J->P, nameSymbol + OFFSET_Symbol_body, nameString, nameSymbolLength); |
531 CHECK_FAIL(err); |
531 CHECK_FAIL(err); |
532 |
532 |
533 /* To get signature string */ |
533 /* To get signature string */ |
534 err = ps_pread(J->P, constMethod + OFFSET_constMethodOopDesc_signature_index, &signatureIndex, 2); |
534 err = ps_pread(J->P, constMethod + OFFSET_constMethodOopDesc_signature_index, &signatureIndex, 2); |
535 CHECK_FAIL(err); |
535 CHECK_FAIL(err); |
536 err = read_pointer(J, constantPool + signatureIndex * POINTER_SIZE + SIZE_constantPoolOopDesc, &signatureSymbol); |
536 err = read_pointer(J, constantPool + signatureIndex * POINTER_SIZE + SIZE_constantPoolOopDesc, &signatureSymbol); |
537 CHECK_FAIL(err); |
537 CHECK_FAIL(err); |
538 err = ps_pread(J->P, signatureSymbol + OFFSET_symbolOopDesc_length, &signatureSymbolLength, 2); |
538 err = ps_pread(J->P, signatureSymbol + OFFSET_Symbol_length, &signatureSymbolLength, 2); |
539 CHECK_FAIL(err); |
539 CHECK_FAIL(err); |
540 signatureString = (char*)calloc(signatureSymbolLength + 1, 1); |
540 signatureString = (char*)calloc(signatureSymbolLength + 1, 1); |
541 err = ps_pread(J->P, signatureSymbol + OFFSET_symbolOopDesc_body, signatureString, signatureSymbolLength); |
541 err = ps_pread(J->P, signatureSymbol + OFFSET_Symbol_body, signatureString, signatureSymbolLength); |
542 CHECK_FAIL(err); |
542 CHECK_FAIL(err); |
543 |
543 |
544 /* To get klass string */ |
544 /* To get klass string */ |
545 err = read_pointer(J, constantPool + OFFSET_constantPoolOopDesc_pool_holder, &klassPtr); |
545 err = read_pointer(J, constantPool + OFFSET_constantPoolOopDesc_pool_holder, &klassPtr); |
546 CHECK_FAIL(err); |
546 CHECK_FAIL(err); |
547 err = read_pointer(J, klassPtr + OFFSET_Klass_name + SIZE_oopDesc, &klassSymbol); |
547 err = read_pointer(J, klassPtr + OFFSET_Klass_name + SIZE_oopDesc, &klassSymbol); |
548 CHECK_FAIL(err); |
548 CHECK_FAIL(err); |
549 err = ps_pread(J->P, klassSymbol + OFFSET_symbolOopDesc_length, &klassSymbolLength, 2); |
549 err = ps_pread(J->P, klassSymbol + OFFSET_Symbol_length, &klassSymbolLength, 2); |
550 CHECK_FAIL(err); |
550 CHECK_FAIL(err); |
551 klassString = (char*)calloc(klassSymbolLength + 1, 1); |
551 klassString = (char*)calloc(klassSymbolLength + 1, 1); |
552 err = ps_pread(J->P, klassSymbol + OFFSET_symbolOopDesc_body, klassString, klassSymbolLength); |
552 err = ps_pread(J->P, klassSymbol + OFFSET_Symbol_body, klassString, klassSymbolLength); |
553 CHECK_FAIL(err); |
553 CHECK_FAIL(err); |
554 |
554 |
555 result[0] = '\0'; |
555 result[0] = '\0'; |
556 strncat(result, klassString, size); |
556 strncat(result, klassString, size); |
557 size -= strlen(klassString); |
557 size -= strlen(klassString); |