binding
struct binding *nextTagBinding;
struct binding *prevPrefixBinding;
BINDING *binding;
b->prefix->binding = b->prevPrefixBinding;
b->prefix->binding = b->prevPrefixBinding;
BINDING *binding;
const BINDING *const b = id->prefix->binding;
for (binding = *bindingsPtr; binding; binding = binding->nextTagBinding)
binding->attId->name[-1] = 0;
binding = elementType->prefix->binding;
if (! binding)
} else if (dtd->defaultPrefix.binding) {
binding = dtd->defaultPrefix.binding;
if (parser->m_ns_triplets && binding->prefix->name)
prefixLen = xcslen(binding->prefix->name) + /*null terminator*/ 1;
tagNamePtr->uriLen = binding->uriLen;
tagNamePtr->prefix = binding->prefix->name;
if (binding->uriLen > SIZE_MAX - prefixLen
|| localPartLen > SIZE_MAX - (binding->uriLen + prefixLen)) {
const size_t totalLen = localPartLen + binding->uriLen + prefixLen;
if (totalLen > binding->uriAlloc) {
binding->uriAlloc = totalLen + EXPAND_SPARE;
memcpy(uri, binding->uri, binding->uriLen * sizeof(XML_Char));
if (p->name.str == binding->uri)
FREE(parser, binding->uri);
binding->uri = uri;
uri = binding->uri + binding->uriLen;
memcpy(uri + 1, binding->prefix->name, prefixLen * sizeof(XML_Char));
tagNamePtr->str = binding->uri;
b->prevPrefixBinding = prefix->binding;
prefix->binding = NULL;
prefix->binding = b;
prefix->binding ? uri : 0);
if (dtd->defaultPrefix.binding) {
size_t len = dtd->defaultPrefix.binding->uriLen;
if (! poolAppendChars(&parser->m_tempPool, dtd->defaultPrefix.binding->uri,
if (! prefix->binding) {
size_t len = prefix->binding->uriLen;
if (! poolAppendChars(&parser->m_tempPool, prefix->binding->uri, len))
p->defaultPrefix.binding = NULL;
p->defaultPrefix.binding = NULL;