Commit f90eeab1 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Remove VLC_VAR_LIST variable type

parent 034ae114
...@@ -453,7 +453,6 @@ struct vlc_list_t ...@@ -453,7 +453,6 @@ struct vlc_list_t
#define VLC_VAR_TIME 0x0060 #define VLC_VAR_TIME 0x0060
#define VLC_VAR_ADDRESS 0x0070 #define VLC_VAR_ADDRESS 0x0070
#define VLC_VAR_MUTEX 0x0080 #define VLC_VAR_MUTEX 0x0080
#define VLC_VAR_LIST 0x0090
#define VLC_VAR_COORDS 0x00A0 #define VLC_VAR_COORDS 0x00A0
/**@}*/ /**@}*/
......
...@@ -75,12 +75,18 @@ int vlclua_pushvalue( lua_State *L, int i_type, vlc_value_t val ) ...@@ -75,12 +75,18 @@ int vlclua_pushvalue( lua_State *L, int i_type, vlc_value_t val )
case VLC_VAR_MUTEX: case VLC_VAR_MUTEX:
vlclua_error( L ); vlclua_error( L );
break; break;
case VLC_VAR_LIST: 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; int i_count = val.p_list->i_count;
int i;
lua_createtable( L, i_count, 0 ); lua_createtable( L, i_count, 0 );
for( i = 0; i < i_count; i++ ) for( int i = 0; i < i_count; i++ )
{ {
lua_pushinteger( L, i+1 ); lua_pushinteger( L, i+1 );
if( !vlclua_pushvalue( L, val.p_list->pi_types[i], if( !vlclua_pushvalue( L, val.p_list->pi_types[i],
...@@ -88,11 +94,6 @@ int vlclua_pushvalue( lua_State *L, int i_type, vlc_value_t val ) ...@@ -88,11 +94,6 @@ int vlclua_pushvalue( lua_State *L, int i_type, vlc_value_t val )
lua_pushnil( L ); lua_pushnil( L );
lua_settable( L, -3 ); lua_settable( L, -3 );
} }
}
break;
default:
vlclua_error( L );
}
return 1; return 1;
} }
...@@ -126,9 +127,6 @@ static int vlclua_tovalue( lua_State *L, int i_type, vlc_value_t *val ) ...@@ -126,9 +127,6 @@ static int vlclua_tovalue( lua_State *L, int i_type, vlc_value_t *val )
case VLC_VAR_MUTEX: case VLC_VAR_MUTEX:
vlclua_error( L ); vlclua_error( L );
break; break;
case VLC_VAR_LIST:
vlclua_error( L );
break;
default: default:
vlclua_error( L ); vlclua_error( L );
} }
...@@ -198,8 +196,8 @@ static int vlclua_var_get_list( lua_State *L ) ...@@ -198,8 +196,8 @@ static int vlclua_var_get_list( lua_State *L )
const char *psz_var = luaL_checkstring( L, 2 ); const char *psz_var = luaL_checkstring( L, 2 );
int i_ret = var_Change( *pp_obj, psz_var, VLC_VAR_GETLIST, &val, &text ); 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 ); if( i_ret < 0 ) return vlclua_push_ret( L, i_ret );
vlclua_pushvalue( L, VLC_VAR_LIST, val ); vlclua_pushlist( L, val.p_list );
vlclua_pushvalue( L, VLC_VAR_LIST, text ); vlclua_pushlist( L, text.p_list );
var_FreeList( &val, &text ); var_FreeList( &val, &text );
return 2; return 2;
} }
...@@ -358,7 +356,6 @@ static int vlclua_add_callback( lua_State *L ) ...@@ -358,7 +356,6 @@ static int vlclua_add_callback( lua_State *L )
case VLC_VAR_ADDRESS: case VLC_VAR_ADDRESS:
case VLC_VAR_VOID: case VLC_VAR_VOID:
case VLC_VAR_MUTEX: case VLC_VAR_MUTEX:
case VLC_VAR_LIST:
default: default:
return vlclua_error( L ); return vlclua_error( L );
} }
......
...@@ -698,7 +698,6 @@ static void DumpVariable (const void *data, const VISIT which, const int depth) ...@@ -698,7 +698,6 @@ static void DumpVariable (const void *data, const VISIT which, const int depth)
MYCASE( COORDS, "coords" ); MYCASE( COORDS, "coords" );
MYCASE( ADDRESS, "address" ); MYCASE( ADDRESS, "address" );
MYCASE( MUTEX, "mutex" ); MYCASE( MUTEX, "mutex" );
MYCASE( LIST, "list" );
#undef MYCASE #undef MYCASE
} }
printf( " *-o \"%s\" (%s", p_var->psz_name, psz_type ); 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) ...@@ -738,9 +737,6 @@ static void DumpVariable (const void *data, const VISIT which, const int depth)
case VLC_VAR_ADDRESS: case VLC_VAR_ADDRESS:
printf( ": %p", p_var->val.p_address ); printf( ": %p", p_var->val.p_address );
break; break;
case VLC_VAR_LIST:
fputs( ": TODO", stdout );
break;
} }
fputc( '\n', stdout ); fputc( '\n', stdout );
} }
......
...@@ -85,41 +85,6 @@ static void DupString( vlc_value_t *p_val ) ...@@ -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 : "" ); 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 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 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 ); } 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, }, ...@@ -156,7 +121,6 @@ addr_ops = { CmpAddress, DupDummy, FreeDummy, },
bool_ops = { CmpBool, DupDummy, FreeDummy, }, bool_ops = { CmpBool, DupDummy, FreeDummy, },
float_ops = { CmpFloat, DupDummy, FreeDummy, }, float_ops = { CmpFloat, DupDummy, FreeDummy, },
int_ops = { CmpInt, DupDummy, FreeDummy, }, int_ops = { CmpInt, DupDummy, FreeDummy, },
list_ops = { CmpAddress, DupList, FreeList, },
mutex_ops = { CmpAddress, DupDummy, FreeMutex, }, mutex_ops = { CmpAddress, DupDummy, FreeMutex, },
string_ops = { CmpString, DupString, FreeString, }, string_ops = { CmpString, DupString, FreeString, },
time_ops = { CmpTime, DupDummy, FreeDummy, }, time_ops = { CmpTime, DupDummy, FreeDummy, },
...@@ -225,7 +189,6 @@ static void Destroy( variable_t *p_var ) ...@@ -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 ) 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 ); assert( p_this );
variable_t *p_var = calloc( 1, sizeof( *p_var ) ); 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 ) ...@@ -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) ); p_var->val.p_address = malloc( sizeof(vlc_mutex_t) );
vlc_mutex_init( (vlc_mutex_t*)p_var->val.p_address ); vlc_mutex_init( (vlc_mutex_t*)p_var->val.p_address );
break; break;
case VLC_VAR_LIST:
p_var->ops = &list_ops;
p_var->val.p_list = &dummy_null_list;
break;
default: default:
p_var->ops = &void_ops; p_var->ops = &void_ops;
#ifndef NDEBUG #ifndef NDEBUG
...@@ -1109,46 +1068,12 @@ void var_OptionParse( vlc_object_t *p_obj, const char *psz_option, ...@@ -1109,46 +1068,12 @@ void var_OptionParse( vlc_object_t *p_obj, const char *psz_option,
val.psz_string = psz_value; val.psz_string = psz_value;
break; 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: default:
goto cleanup; goto cleanup;
} }
var_Set( p_obj, psz_name, val ); 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: cleanup:
free( psz_name ); free( psz_name );
} }
...@@ -1300,35 +1225,6 @@ int var_Inherit( vlc_object_t *p_this, const char *psz_name, int i_type, ...@@ -1300,35 +1225,6 @@ int var_Inherit( vlc_object_t *p_this, const char *psz_name, int i_type,
case VLC_VAR_BOOL: case VLC_VAR_BOOL:
p_val->b_bool = config_GetInt( p_this, psz_name ); p_val->b_bool = config_GetInt( p_this, psz_name );
break; 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: default:
msg_Warn( p_this, "Could not inherit value for var %s " msg_Warn( p_this, "Could not inherit value for var %s "
"from config. Invalid Type", psz_name ); "from config. Invalid Type", psz_name );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment