コード例 #1
0
ファイル: svg_pqueue.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * 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);
}
コード例 #2
0
/*****************************************************************************
 * 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);
}
コード例 #3
0
/*****************************************************************************
 * 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;

    }
}
コード例 #4
0
ファイル: svg_parser_ellipse.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * 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;
}
コード例 #5
0
ファイル: svg_pqueue.c プロジェクト: 12019/mtktest
/*****************************************************************************
 * 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);
}
コード例 #6
0
/*****************************************************************************
 * 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;
}