/***************************************************************************** * FUNCTION * svg_pq_free * DESCRIPTION * * PARAMETERS * pq [?] * RETURNS * void *****************************************************************************/ void svg_pq_free(svg_pq_t *pq) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ svg_mem_free(pq->items); svg_mem_free(pq); }
/***************************************************************************** * FUNCTION * svg_str_delete * DESCRIPTION * * PARAMETERS * str [?] * RETURNS * void *****************************************************************************/ void svg_str_delete(svg_string_t *str) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ svg_mem_free(str->data); svg_mem_free(str); }
/***************************************************************************** * FUNCTION * svg_str_resize * DESCRIPTION * * PARAMETERS * str [?] * max_len [IN] * RETURNS * void *****************************************************************************/ void svg_str_resize(svg_string_t *str, int max_len) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (max_len != str->max_len) { U8 *new_data = svg_mem_malloc(max_len + 1); if (str->max_len <= max_len) { memcpy(new_data, str->data, str->len + 1); /* copy string content + null char */ } else { memcpy(new_data, str->data, max_len); new_data[max_len] = 0; /* append null char */ str->len = max_len; } str->max_len = max_len; svg_mem_free(str->data); str->data = new_data; } }
/***************************************************************************** * FUNCTION * svg_parser_element_ellipse * DESCRIPTION * * PARAMETERS * ret_element [IN] * attr [IN] * RETURNS * *****************************************************************************/ svg_enum svg_parser_element_ellipse(svg_element_t **ret_element, U8 **attr) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ svg_enum ret; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ ret = svg_element_create(ret_element, SVG_ELEMENT_TYPE_ELLIPSE); if (ret == SVG_OK) { svg_element_t *e = *ret_element; svg_attr_get_length(&(e->X.ellipse.cx), attr, (U8*) "cx", (U8*) "0", TRUE); svg_attr_get_length(&(e->X.ellipse.cy), attr, (U8*) "cy", (U8*) "0", FALSE); svg_attr_get_length(&(e->X.ellipse.rx), attr, (U8*) "rx", (U8*) "0", TRUE); svg_attr_get_length(&(e->X.ellipse.ry), attr, (U8*) "ry", (U8*) "0", TRUE); if (e->X.ellipse.rx <= 1e-10 || e->X.ellipse.ry <= 1e-10) { ret = SVG_FAIL; svg_mem_free(e); } } return ret; }
/***************************************************************************** * FUNCTION * svg_pq_insert * DESCRIPTION * * PARAMETERS * pq [?] * point [?] * RETURNS * void *****************************************************************************/ void svg_pq_insert(svg_pq_t *pq, svg_pq_pos_t *point) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (pq->n_items == pq->n_items_max) { int m = pq->n_items_max + 8; svg_pq_pos_t **new_items = (svg_pq_pos_t **) svg_mem_malloc(sizeof(svg_pq_pos_t **) * m); memcpy(new_items, pq->items, sizeof(svg_pq_pos_t **) * pq->n_items_max); svg_mem_free(pq->items); pq->items = new_items; pq->n_items_max = m; } svg_pq_up(pq, pq->n_items++, point); }
/***************************************************************************** * FUNCTION * svg_const_pool_utf82ucs2 * DESCRIPTION * * PARAMETERS * data [?] * dest_len [?] * RETURNS * *****************************************************************************/ U8 *svg_const_pool_utf82ucs2(U8 *data, U32 *dest_len) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *ucs2, *ret; U32 ucs2_len; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ ucs2_len = mmi_chset_utf8_strlen(data); ucs2_len = (ucs2_len + 1) * 2; ucs2 = svg_mem_malloc(ucs2_len); mmi_chset_utf8_to_ucs2_string(ucs2, ucs2_len, data); if (dest_len) { *dest_len = ucs2_len; } ret = svg_const_pool_raw(ucs2, ucs2_len); svg_mem_free(ucs2); return ret; }