- }
- uselocale (locale);
-
- msg_item_t * p_item = malloc (sizeof (*p_item));
- if (p_item == NULL)
- return; /* Uho! */
-
- vlc_gc_init (p_item, msg_Free);
- p_item->psz_module = p_item->psz_msg = p_item->psz_header = NULL;
-
-
-
- i_header_size = 0;
- p_obj = p_this;
- while( p_obj != NULL )
- {
- char *psz_old = NULL;
- if( p_obj->psz_header )
- {
- i_header_size += strlen( p_obj->psz_header ) + 4;
- if( psz_header )
- {
- psz_old = strdup( psz_header );
- psz_header = xrealloc( psz_header, i_header_size );
- snprintf( psz_header, i_header_size , "[%s] %s",
- p_obj->psz_header, psz_old );
- }
- else
- {
- psz_header = xmalloc( i_header_size );
- snprintf( psz_header, i_header_size, "[%s]",
- p_obj->psz_header );
- }
- }
- free( psz_old );
- p_obj = p_obj->p_parent;
- }
-
- /* Fill message information fields */
- p_item->i_type = i_type;
- p_item->i_object_id = (uintptr_t)p_this;
- p_item->psz_object_type = p_this->psz_object_type;
- p_item->psz_module = strdup( psz_module );
- p_item->psz_msg = psz_str;
- p_item->psz_header = psz_header;