X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fpquery.c;h=55eb1d30efcebc020d75333259e8cbedac345dc6;hp=f2c39e87b75df42f8e83df1aec33bca16d8263de;hb=2b8637b1b34cbbd57cee3cd1b493f5a8231e9afd;hpb=69b1d8e7b437179163fe97b7cbead51a56835f2a diff --git a/src/pquery.c b/src/pquery.c index f2c39e8..55eb1d3 100644 --- a/src/pquery.c +++ b/src/pquery.c @@ -310,29 +310,19 @@ static Z_AttributeList *get_attributeList(ODR o, Z_Term *z_Term_create(ODR o, int term_type, const char *buf, size_t len) { Z_Term *term = (Z_Term *)odr_malloc(o, sizeof(*term)); - Odr_oct *term_octet = (Odr_oct *)odr_malloc(o, sizeof(*term_octet)); - term_octet->buf = (char *)odr_malloc(o, 1 + len); - memcpy(term_octet->buf, buf, len); - term_octet->len = len; -#if OCT_SIZE - term_octet->size = len; -#endif - term_octet->buf[term_octet->len] = 0; /* null terminate */ - switch (term_type) { case Z_Term_general: term->which = Z_Term_general; - term->u.general = term_octet; + term->u.general = odr_create_Odr_oct(o, buf, len); break; case Z_Term_characterString: term->which = Z_Term_characterString; - term->u.characterString = (char*) term_octet->buf; - /* null terminated above */ + term->u.characterString = odr_strdupn(o, buf, len); break; case Z_Term_numeric: term->which = Z_Term_numeric; - term->u.numeric = odr_intdup(o, odr_atoi((const char*) term_octet->buf)); + term->u.numeric = odr_intdup(o, odr_atoi(odr_strdupn(o, buf, len))); break; case Z_Term_null: term->which = Z_Term_null;