static ElementName elementNameByBuffer(@NoLength char[] buf, int offset, int length, Interner interner) { int hash = ElementName.bufToHash(buf, length); int index = Arrays.binarySearch(ElementName.ELEMENT_HASHES, hash); if (index < 0) { return new ElementName(Portability.newLocalNameFromBuffer(buf, offset, length, interner)); } else { ElementName elementName = ElementName.ELEMENT_NAMES[index]; @Local String name = elementName.name; if (!Portability.localEqualsBuffer(name, buf, offset, length)) { return new ElementName(Portability.newLocalNameFromBuffer(buf, offset, length, interner)); } return elementName; } }
@Inline static ElementName elementNameByBuffer(@NoLength char[] buf, int length, Interner interner) { @Unsigned int hash = ElementName.bufToHash(buf, length); int[] hashes; hashes = ElementName.ELEMENT_HASHES; int index = levelOrderBinarySearch(hashes, hash); if (index < 0) { return null; } else { ElementName elementName = ElementName.ELEMENT_NAMES[index]; @Local String name = elementName.name; if (!Portability.localEqualsBuffer(name, buf, length)) { return null; } return elementName; } }
@Inline static ElementName elementNameByBuffer(@NoLength char[] buf, int length, Interner interner) { @Unsigned int hash = ElementName.bufToHash(buf, length); int[] hashes; hashes = ElementName.ELEMENT_HASHES; int index = levelOrderBinarySearch(hashes, hash); if (index < 0) { return null; } else { ElementName elementName = ElementName.ELEMENT_NAMES[index]; @Local String name = elementName.name; if (!Portability.localEqualsBuffer(name, buf, length)) { return null; } return elementName; } }