1841 */
1842 return (e0.start_bci == e1.start_bci &&
1843 e0.length == e1.length &&
1844 e0.name_cp_index == e1.name_cp_index &&
1845 e0.slot == e1.slot);
1846 }
1847
1848 static unsigned int hash(LocalVariableTableElement const& e0) {
1849 unsigned int raw_hash = e0.start_bci;
1850
1851 raw_hash = e0.length + raw_hash * 37;
1852 raw_hash = e0.name_cp_index + raw_hash * 37;
1853 raw_hash = e0.slot + raw_hash * 37;
1854
1855 return raw_hash;
1856 }
1857 };
1858
1859
1860 // Class file LocalVariableTable elements.
1861 class Classfile_LVT_Element VALUE_OBJ_CLASS_SPEC {
1862 public:
1863 u2 start_bci;
1864 u2 length;
1865 u2 name_cp_index;
1866 u2 descriptor_cp_index;
1867 u2 slot;
1868 };
1869
1870 static void copy_lvt_element(const Classfile_LVT_Element* const src,
1871 LocalVariableTableElement* const lvt) {
1872 lvt->start_bci = Bytes::get_Java_u2((u1*) &src->start_bci);
1873 lvt->length = Bytes::get_Java_u2((u1*) &src->length);
1874 lvt->name_cp_index = Bytes::get_Java_u2((u1*) &src->name_cp_index);
1875 lvt->descriptor_cp_index = Bytes::get_Java_u2((u1*) &src->descriptor_cp_index);
1876 lvt->signature_cp_index = 0;
1877 lvt->slot = Bytes::get_Java_u2((u1*) &src->slot);
1878 }
1879
1880 // Function is used to parse both attributes:
1881 // LocalVariableTable (LVT) and LocalVariableTypeTable (LVTT)
|
1841 */
1842 return (e0.start_bci == e1.start_bci &&
1843 e0.length == e1.length &&
1844 e0.name_cp_index == e1.name_cp_index &&
1845 e0.slot == e1.slot);
1846 }
1847
1848 static unsigned int hash(LocalVariableTableElement const& e0) {
1849 unsigned int raw_hash = e0.start_bci;
1850
1851 raw_hash = e0.length + raw_hash * 37;
1852 raw_hash = e0.name_cp_index + raw_hash * 37;
1853 raw_hash = e0.slot + raw_hash * 37;
1854
1855 return raw_hash;
1856 }
1857 };
1858
1859
1860 // Class file LocalVariableTable elements.
1861 class Classfile_LVT_Element {
1862 public:
1863 u2 start_bci;
1864 u2 length;
1865 u2 name_cp_index;
1866 u2 descriptor_cp_index;
1867 u2 slot;
1868 };
1869
1870 static void copy_lvt_element(const Classfile_LVT_Element* const src,
1871 LocalVariableTableElement* const lvt) {
1872 lvt->start_bci = Bytes::get_Java_u2((u1*) &src->start_bci);
1873 lvt->length = Bytes::get_Java_u2((u1*) &src->length);
1874 lvt->name_cp_index = Bytes::get_Java_u2((u1*) &src->name_cp_index);
1875 lvt->descriptor_cp_index = Bytes::get_Java_u2((u1*) &src->descriptor_cp_index);
1876 lvt->signature_cp_index = 0;
1877 lvt->slot = Bytes::get_Java_u2((u1*) &src->slot);
1878 }
1879
1880 // Function is used to parse both attributes:
1881 // LocalVariableTable (LVT) and LocalVariableTypeTable (LVTT)
|