From: RĂ©mi Denis-Courmont Date: Tue, 8 Jun 2010 18:03:11 +0000 (+0300) Subject: Remove VLC_VAR_LIST variable type X-Git-Tag: 1.2.0-pre1~6263 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=f90eeab1ee15fdcc7c4121d877c44eacf5cea3fb;p=vlc Remove VLC_VAR_LIST variable type --- diff --git a/include/vlc_common.h b/include/vlc_common.h index 9cb0273d50..a05f24e471 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -453,7 +453,6 @@ struct vlc_list_t #define VLC_VAR_TIME 0x0060 #define VLC_VAR_ADDRESS 0x0070 #define VLC_VAR_MUTEX 0x0080 -#define VLC_VAR_LIST 0x0090 #define VLC_VAR_COORDS 0x00A0 /**@}*/ diff --git a/modules/misc/lua/libs/variables.c b/modules/misc/lua/libs/variables.c index 4373f37995..211d461bfa 100644 --- a/modules/misc/lua/libs/variables.c +++ b/modules/misc/lua/libs/variables.c @@ -75,27 +75,28 @@ int vlclua_pushvalue( lua_State *L, int i_type, vlc_value_t val ) case VLC_VAR_MUTEX: vlclua_error( L ); break; - case VLC_VAR_LIST: - { - int i_count = val.p_list->i_count; - int i; - lua_createtable( L, i_count, 0 ); - for( i = 0; i < i_count; i++ ) - { - lua_pushinteger( L, i+1 ); - if( !vlclua_pushvalue( L, val.p_list->pi_types[i], - val.p_list->p_values[i] ) ) - lua_pushnil( L ); - lua_settable( L, -3 ); - } - } - break; default: vlclua_error( L ); } return 1; } +static int vlclua_pushlist( lua_State *L, vlc_list_t *list ) +{ + int i_count = val.p_list->i_count; + + lua_createtable( L, i_count, 0 ); + for( int i = 0; i < i_count; i++ ) + { + lua_pushinteger( L, i+1 ); + if( !vlclua_pushvalue( L, val.p_list->pi_types[i], + val.p_list->p_values[i] ) ) + lua_pushnil( L ); + lua_settable( L, -3 ); + } + return 1; +} + static int vlclua_tovalue( lua_State *L, int i_type, vlc_value_t *val ) { switch( i_type & VLC_VAR_CLASS ) @@ -126,9 +127,6 @@ static int vlclua_tovalue( lua_State *L, int i_type, vlc_value_t *val ) case VLC_VAR_MUTEX: vlclua_error( L ); break; - case VLC_VAR_LIST: - vlclua_error( L ); - break; default: vlclua_error( L ); } @@ -198,8 +196,8 @@ static int vlclua_var_get_list( lua_State *L ) const char *psz_var = luaL_checkstring( L, 2 ); int i_ret = var_Change( *pp_obj, psz_var, VLC_VAR_GETLIST, &val, &text ); if( i_ret < 0 ) return vlclua_push_ret( L, i_ret ); - vlclua_pushvalue( L, VLC_VAR_LIST, val ); - vlclua_pushvalue( L, VLC_VAR_LIST, text ); + vlclua_pushlist( L, val.p_list ); + vlclua_pushlist( L, text.p_list ); var_FreeList( &val, &text ); return 2; } @@ -358,7 +356,6 @@ static int vlclua_add_callback( lua_State *L ) case VLC_VAR_ADDRESS: case VLC_VAR_VOID: case VLC_VAR_MUTEX: - case VLC_VAR_LIST: default: return vlclua_error( L ); } diff --git a/src/misc/objects.c b/src/misc/objects.c index 47723f2e21..352acb3b8e 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -698,7 +698,6 @@ static void DumpVariable (const void *data, const VISIT which, const int depth) MYCASE( COORDS, "coords" ); MYCASE( ADDRESS, "address" ); MYCASE( MUTEX, "mutex" ); - MYCASE( LIST, "list" ); #undef MYCASE } printf( " *-o \"%s\" (%s", p_var->psz_name, psz_type ); @@ -738,9 +737,6 @@ static void DumpVariable (const void *data, const VISIT which, const int depth) case VLC_VAR_ADDRESS: printf( ": %p", p_var->val.p_address ); break; - case VLC_VAR_LIST: - fputs( ": TODO", stdout ); - break; } fputc( '\n', stdout ); } diff --git a/src/misc/variables.c b/src/misc/variables.c index 120aa4bbdd..6f3e901cc9 100644 --- a/src/misc/variables.c +++ b/src/misc/variables.c @@ -85,41 +85,6 @@ static void DupString( vlc_value_t *p_val ) p_val->psz_string = strdup( p_val->psz_string ? p_val->psz_string : "" ); } -static void DupList( vlc_value_t *p_val ) -{ - int i; - vlc_list_t *p_list = malloc( sizeof(vlc_list_t) ); - - p_list->i_count = p_val->p_list->i_count; - if( p_val->p_list->i_count ) - { - p_list->p_values = malloc( p_list->i_count * sizeof(vlc_value_t) ); - p_list->pi_types = malloc( p_list->i_count * sizeof(int) ); - } - else - { - p_list->p_values = NULL; - p_list->pi_types = NULL; - } - - for( i = 0; i < p_list->i_count; i++ ) - { - p_list->p_values[i] = p_val->p_list->p_values[i]; - p_list->pi_types[i] = p_val->p_list->pi_types[i]; - switch( p_val->p_list->pi_types[i] & VLC_VAR_CLASS ) - { - case VLC_VAR_STRING: - - DupString( &p_list->p_values[i] ); - break; - default: - break; - } - } - - p_val->p_list = p_list; -} - static void FreeDummy( vlc_value_t *p_val ) { (void)p_val; /* unused */ } static void FreeString( vlc_value_t *p_val ) { free( p_val->psz_string ); } static void FreeMutex( vlc_value_t *p_val ) { vlc_mutex_destroy( (vlc_mutex_t*)p_val->p_address ); free( p_val->p_address ); } @@ -156,7 +121,6 @@ addr_ops = { CmpAddress, DupDummy, FreeDummy, }, bool_ops = { CmpBool, DupDummy, FreeDummy, }, float_ops = { CmpFloat, DupDummy, FreeDummy, }, int_ops = { CmpInt, DupDummy, FreeDummy, }, -list_ops = { CmpAddress, DupList, FreeList, }, mutex_ops = { CmpAddress, DupDummy, FreeMutex, }, string_ops = { CmpString, DupString, FreeString, }, time_ops = { CmpTime, DupDummy, FreeDummy, }, @@ -225,7 +189,6 @@ static void Destroy( variable_t *p_var ) */ int var_Create( vlc_object_t *p_this, const char *psz_name, int i_type ) { - static vlc_list_t dummy_null_list = {0, NULL, NULL}; assert( p_this ); variable_t *p_var = calloc( 1, sizeof( *p_var ) ); @@ -287,10 +250,6 @@ int var_Create( vlc_object_t *p_this, const char *psz_name, int i_type ) p_var->val.p_address = malloc( sizeof(vlc_mutex_t) ); vlc_mutex_init( (vlc_mutex_t*)p_var->val.p_address ); break; - case VLC_VAR_LIST: - p_var->ops = &list_ops; - p_var->val.p_list = &dummy_null_list; - break; default: p_var->ops = &void_ops; #ifndef NDEBUG @@ -1109,46 +1068,12 @@ void var_OptionParse( vlc_object_t *p_obj, const char *psz_option, val.psz_string = psz_value; break; - case VLC_VAR_LIST: - { - char *psz_orig, *psz_var; - vlc_list_t *p_list = malloc(sizeof(vlc_list_t)); - val.p_list = p_list; - p_list->i_count = 0; - - psz_var = psz_orig = strdup(psz_value); - while( psz_var && *psz_var ) - { - char *psz_item = psz_var; - vlc_value_t val2; - while( *psz_var && *psz_var != ',' ) psz_var++; - if( *psz_var == ',' ) - { - *psz_var = '\0'; - psz_var++; - } - val2.i_int = strtol( psz_item, NULL, 0 ); - INSERT_ELEM( p_list->p_values, p_list->i_count, - p_list->i_count, val2 ); - /* p_list->i_count is incremented twice by INSERT_ELEM */ - p_list->i_count--; - INSERT_ELEM( p_list->pi_types, p_list->i_count, - p_list->i_count, VLC_VAR_INTEGER ); - } - free( psz_orig ); - break; - } - default: goto cleanup; } var_Set( p_obj, psz_name, val ); - /* If that's a list, remove all elements allocated */ - if( i_type == VLC_VAR_LIST ) - FreeList( &val ); - cleanup: free( psz_name ); } @@ -1300,35 +1225,6 @@ int var_Inherit( vlc_object_t *p_this, const char *psz_name, int i_type, case VLC_VAR_BOOL: p_val->b_bool = config_GetInt( p_this, psz_name ); break; - case VLC_VAR_LIST: - { - char *psz_orig, *psz_var; - vlc_list_t *p_list = malloc(sizeof(vlc_list_t)); - p_val->p_list = p_list; - p_list->i_count = 0; - - psz_var = psz_orig = config_GetPsz( p_this, psz_name ); - while( psz_var && *psz_var ) - { - char *psz_item = psz_var; - vlc_value_t val; - while( *psz_var && *psz_var != ',' ) psz_var++; - if( *psz_var == ',' ) - { - *psz_var = '\0'; - psz_var++; - } - val.i_int = strtol( psz_item, NULL, 0 ); - INSERT_ELEM( p_list->p_values, p_list->i_count, - p_list->i_count, val ); - /* p_list->i_count is incremented twice by INSERT_ELEM */ - p_list->i_count--; - INSERT_ELEM( p_list->pi_types, p_list->i_count, - p_list->i_count, VLC_VAR_INTEGER ); - } - free( psz_orig ); - break; - } default: msg_Warn( p_this, "Could not inherit value for var %s " "from config. Invalid Type", psz_name );