Home | History | Annotate | Download | only in instr

Lines Matching defs:clinit

197             // note that post-4019 builds can modify this field outside of <clinit> (although
240 // add a Methodref for pre-<clinit> method:
258 // visits when it is known whether a <clinit> was added]:
261 // compensation not necessary if the original clsdef already defined <clinit>:
333 final int valueIndex = constants.add (new CONSTANT_Long_info (cls.computeSUID (true))); // ignore the added <clinit>
366 // - create [potentially unused] slot for added <clinit>
424 else // this is a regular, non-<clinit> method that has bytecode:
434 // if <clinit> found: note the ID but delay processing until the very end
436 if (trace2) m_log.trace2 ("visit", "<clinit> method delayed");
464 // add <clinit> (and instrument if needed) [a <clinit> is always needed
468 final Method_info clinit;
472 // <clinit> existed in the original class: needs to be covered
475 clinit = methods.get (m_clinitID);
481 // there is no <clinit> defined by the original class: add one [and mark it synthetic]
509 clinit = new Method_info (IAccessFlags.ACC_STATIC | IAccessFlags.ACC_PRIVATE, name_index, descriptor_index, attributes);
511 m_clinitID = cls.addMethod (clinit);
513 if (trace2) m_log.trace2 ("visit", "added synthetic <clinit> method");
515 // TODO: this should exclude <clinit> if it were added by us
523 // visit <clinit>:
528 if (trace2) m_log.trace2 ("visit", (clinit.isSynthetic () ? "synthetic " : "") + "method #" + m_methodID + ": [<clinit>]");
530 final IAttributeCollection attributes = clinit.getAttributes ();
539 // add pre-<clinit> method:
669 if (trace2) m_log.trace2 ("visit", "added synthetic pre-<clinit> method");
684 m_classMethodDescriptors [m_methodID] = new MethodDescriptor (IClassDefConstants.CLINIT_NAME, clinit.getDescriptor (cls), m_clinitStatus, m_methodBlockSizes, methodBlockMetadata, m_methodFirstLine);
1061 // update block count map [used later by <clinit> visit]:
1071 if (m_methodID == m_clinitID) // note: m_clinitID can be -1 if <clinit> has not been visited yet
1905 // methods that can be executed ahead of <clinit>) [rare]
1907 buf.write3 (_ifnonnull, // skip over pre-<clinit> method call
1913 // block: call pre-<clinit> method
2155 private String m_className; // in JVM format [<init>, <clinit>, etc], relative to 'm_classPackageName'
2164 /*private*/ int m_preclinitMethodrefIndex; // index of Methodref for pre-<clinit> method
2167 private int m_clinitID; // offset of <clinit> method [-1 if not determined yet]
2170 /*private*/ int [] m_classBlockCounts; // basic block counts for all methods [only valid just before <clinit> is processed]