func newMethod(class *Class, methodInfo *cf.MemberInfo) *Method { method := &Method{} method.class = class method.accessFlags = methodInfo.AccessFlags() method.name = methodInfo.Name() method.descriptor = methodInfo.Descriptor() method.md = parseMethodDescriptor(method.descriptor) method.calcArgSlotCount() method.copyAttributes(methodInfo) return method }
func newField(class *Class, fieldInfo *cf.MemberInfo) *Field { field := &Field{} field.class = class field.accessFlags = fieldInfo.AccessFlags() field.name = fieldInfo.Name() field.descriptor = fieldInfo.Descriptor() field.signature = fieldInfo.Signature() field.IsLongOrDouble = (field.descriptor == "J" || field.descriptor == "D") if kValAttr := fieldInfo.ConstantValueAttribute(); kValAttr != nil { field.constValueIndex = kValAttr.ConstantValueIndex() } return field }