Example #1
0
/*****************************************************************************
 * FUNCTION
 *  svg_pq_new
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  
 *****************************************************************************/
svg_pq_t *svg_pq_new(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    svg_pq_t *result = (svg_pq_t*) svg_mem_malloc(sizeof(svg_pq_t));

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    result->n_items = 0;
    result->n_items_max = 8;
    result->items = (svg_pq_pos_t **) svg_mem_malloc(sizeof(svg_pq_pos_t*) * result->n_items_max);
    return result;
}
Example #2
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;

    }
}
Example #3
0
/*****************************************************************************
 * FUNCTION
 *  svg_str_new
 * DESCRIPTION
 *
 * PARAMETERS
 *  src     [?]
 * RETURNS
 *
 *****************************************************************************/
svg_string_t *svg_str_new(U8 *src)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    svg_string_t *str = svg_mem_malloc(sizeof(svg_string_t));
    U32 len = STRLEN(src);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    str->max_len = len + 16;
    str->data = svg_mem_malloc(str->max_len + 1);
    memcpy(str->data, src, len + 1);    /* copy string content + null char */
    str->len = len;

    return str;
}
Example #4
0
/*****************************************************************************
 * 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);
}
Example #5
0
/*****************************************************************************
 * FUNCTION
 *  svg_element_create
 * DESCRIPTION
 *  
 * PARAMETERS
 *  element     [IN]        
 *  type        [IN]        
 * RETURNS
 *  
 *****************************************************************************/
svg_enum svg_element_create(svg_element_t **element, svg_element_type type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    *element = svg_mem_malloc(sizeof(svg_element_t));
    if (*element == NULL)
    {
        return SVG_FAIL_NO_MEMORY;
    }

    memset(*element, 0, sizeof(svg_element_t));

    (*element)->type = type;

    svg_transform_identify((*element)->animate_transform);

    return SVG_OK;
}
Example #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;
}