Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
37d45ebb
Commit
37d45ebb
authored
Oct 09, 2008
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cosmetics + A calloc check.
parent
0578a544
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
20 deletions
+21
-20
include/vlc_arrays.h
include/vlc_arrays.h
+21
-20
No files found.
include/vlc_arrays.h
View file @
37d45ebb
...
@@ -405,30 +405,31 @@ static inline uint64_t DictHash( const char *psz_string, int hashsize )
...
@@ -405,30 +405,31 @@ static inline uint64_t DictHash( const char *psz_string, int hashsize )
return
i_hash
%
hashsize
;
return
i_hash
%
hashsize
;
}
}
struct
vlc_dictionary_entry_t
typedef
struct
vlc_dictionary_entry_t
{
{
char
*
psz_key
;
char
*
psz_key
;
void
*
p_value
;
void
*
p_value
;
struct
vlc_dictionary_entry_t
*
p_next
;
struct
vlc_dictionary_entry_t
*
p_next
;
};
}
vlc_dictionary_entry_t
;
typedef
struct
vlc_dictionary_t
typedef
struct
vlc_dictionary_t
{
{
int
i_size
;
int
i_size
;
struct
vlc_dictionary_entry_t
**
p_entries
;
vlc_dictionary_entry_t
**
p_entries
;
}
vlc_dictionary_t
;
}
vlc_dictionary_t
;
static
void
*
const
kVLCDictionaryNotFound
=
NULL
;
static
void
*
const
kVLCDictionaryNotFound
=
NULL
;
static
inline
void
vlc_dictionary_init
(
vlc_dictionary_t
*
p_dict
,
int
i_size
)
static
inline
void
vlc_dictionary_init
(
vlc_dictionary_t
*
p_dict
,
int
i_size
)
{
{
p_dict
->
p_entries
=
NULL
;
if
(
i_size
>
0
)
if
(
i_size
>
0
)
{
{
p_dict
->
p_entries
=
(
struct
vlc_dictionary_entry_t
**
)
malloc
(
sizeof
(
struct
vlc_dictionary_entry_t
*
)
*
i_size
);
p_dict
->
p_entries
=
(
vlc_dictionary_entry_t
**
)
calloc
(
i_size
,
sizeof
(
*
p_dict
->
p_entries
)
);
memset
(
p_dict
->
p_entries
,
0
,
sizeof
(
struct
vlc_dictionary_entry_t
*
)
*
i_size
);
if
(
!
p_dict
->
p_entries
)
i_size
=
0
;
}
}
else
p_dict
->
p_entries
=
NULL
;
p_dict
->
i_size
=
i_size
;
p_dict
->
i_size
=
i_size
;
}
}
...
@@ -436,12 +437,11 @@ static inline void vlc_dictionary_clear( vlc_dictionary_t * p_dict,
...
@@ -436,12 +437,11 @@ static inline void vlc_dictionary_clear( vlc_dictionary_t * p_dict,
void
(
*
pf_free
)(
void
*
p_data
,
void
*
p_obj
),
void
(
*
pf_free
)(
void
*
p_data
,
void
*
p_obj
),
void
*
p_obj
)
void
*
p_obj
)
{
{
int
i
;
struct
vlc_dictionary_entry_t
*
p_current
,
*
p_next
;
if
(
p_dict
->
p_entries
)
if
(
p_dict
->
p_entries
)
{
{
for
(
i
=
0
;
i
<
p_dict
->
i_size
;
i
++
)
for
(
i
nt
i
=
0
;
i
<
p_dict
->
i_size
;
i
++
)
{
{
vlc_dictionary_entry_t
*
p_current
,
*
p_next
;
p_current
=
p_dict
->
p_entries
[
i
];
p_current
=
p_dict
->
p_entries
[
i
];
while
(
p_current
)
while
(
p_current
)
{
{
...
@@ -468,7 +468,7 @@ vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_
...
@@ -468,7 +468,7 @@ vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_
return
kVLCDictionaryNotFound
;
return
kVLCDictionaryNotFound
;
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
struct
vlc_dictionary_entry_t
*
p_entry
=
p_dict
->
p_entries
[
i_pos
];
vlc_dictionary_entry_t
*
p_entry
=
p_dict
->
p_entries
[
i_pos
];
if
(
!
p_entry
)
if
(
!
p_entry
)
return
kVLCDictionaryNotFound
;
return
kVLCDictionaryNotFound
;
...
@@ -486,7 +486,7 @@ vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_
...
@@ -486,7 +486,7 @@ vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_
static
inline
int
static
inline
int
vlc_dictionary_keys_count
(
const
vlc_dictionary_t
*
p_dict
)
vlc_dictionary_keys_count
(
const
vlc_dictionary_t
*
p_dict
)
{
{
struct
vlc_dictionary_entry_t
*
p_entry
;
vlc_dictionary_entry_t
*
p_entry
;
int
i
,
count
=
0
;
int
i
,
count
=
0
;
if
(
!
p_dict
->
p_entries
)
if
(
!
p_dict
->
p_entries
)
...
@@ -502,7 +502,7 @@ vlc_dictionary_keys_count( const vlc_dictionary_t * p_dict )
...
@@ -502,7 +502,7 @@ vlc_dictionary_keys_count( const vlc_dictionary_t * p_dict )
static
inline
char
**
static
inline
char
**
vlc_dictionary_all_keys
(
const
vlc_dictionary_t
*
p_dict
)
vlc_dictionary_all_keys
(
const
vlc_dictionary_t
*
p_dict
)
{
{
struct
vlc_dictionary_entry_t
*
p_entry
;
vlc_dictionary_entry_t
*
p_entry
;
char
**
ppsz_ret
;
char
**
ppsz_ret
;
int
i
,
count
=
vlc_dictionary_keys_count
(
p_dict
);
int
i
,
count
=
vlc_dictionary_keys_count
(
p_dict
);
...
@@ -526,9 +526,9 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
...
@@ -526,9 +526,9 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
vlc_dictionary_init
(
p_dict
,
1
);
vlc_dictionary_init
(
p_dict
,
1
);
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
struct
vlc_dictionary_entry_t
*
p_entry
;
vlc_dictionary_entry_t
*
p_entry
;
p_entry
=
(
struct
vlc_dictionary_entry_t
*
)
malloc
(
sizeof
(
struct
vlc_dictionary_entry_t
));
p_entry
=
(
vlc_dictionary_entry_t
*
)
malloc
(
sizeof
(
*
p_entry
));
p_entry
->
psz_key
=
strdup
(
psz_key
);
p_entry
->
psz_key
=
strdup
(
psz_key
);
p_entry
->
p_value
=
p_value
;
p_entry
->
p_value
=
p_value
;
p_entry
->
p_next
=
p_dict
->
p_entries
[
i_pos
];
p_entry
->
p_next
=
p_dict
->
p_entries
[
i_pos
];
...
@@ -537,7 +537,8 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
...
@@ -537,7 +537,8 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
{
{
/* Count how many items there was */
/* Count how many items there was */
int
count
;
int
count
;
for
(
count
=
1
;
p_entry
->
p_next
;
count
++
)
p_entry
=
p_entry
->
p_next
;
for
(
count
=
1
;
p_entry
->
p_next
;
count
++
)
p_entry
=
p_entry
->
p_next
;
if
(
count
>
3
)
/* XXX: this need tuning */
if
(
count
>
3
)
/* XXX: this need tuning */
{
{
/* Here it starts to be not good, rebuild a bigger dictionary */
/* Here it starts to be not good, rebuild a bigger dictionary */
...
@@ -552,7 +553,7 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
...
@@ -552,7 +553,7 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
{
{
__vlc_dictionary_insert
(
&
new_dict
,
p_entry
->
psz_key
,
__vlc_dictionary_insert
(
&
new_dict
,
p_entry
->
psz_key
,
p_entry
->
p_value
,
p_entry
->
p_value
,
0
/* To avoid multiple rebuild loop */
);
false
/* To avoid multiple rebuild loop */
);
p_entry
=
p_entry
->
p_next
;
p_entry
=
p_entry
->
p_next
;
}
}
}
}
...
@@ -567,7 +568,7 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
...
@@ -567,7 +568,7 @@ __vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key,
static
inline
void
static
inline
void
vlc_dictionary_insert
(
vlc_dictionary_t
*
p_dict
,
const
char
*
psz_key
,
void
*
p_value
)
vlc_dictionary_insert
(
vlc_dictionary_t
*
p_dict
,
const
char
*
psz_key
,
void
*
p_value
)
{
{
__vlc_dictionary_insert
(
p_dict
,
psz_key
,
p_value
,
1
);
__vlc_dictionary_insert
(
p_dict
,
psz_key
,
p_value
,
true
);
}
}
static
inline
void
static
inline
void
...
@@ -579,8 +580,8 @@ vlc_dictionary_remove_value_for_key( const vlc_dictionary_t * p_dict, const char
...
@@ -579,8 +580,8 @@ vlc_dictionary_remove_value_for_key( const vlc_dictionary_t * p_dict, const char
return
;
return
;
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
int
i_pos
=
DictHash
(
psz_key
,
p_dict
->
i_size
);
struct
vlc_dictionary_entry_t
*
p_entry
=
p_dict
->
p_entries
[
i_pos
];
vlc_dictionary_entry_t
*
p_entry
=
p_dict
->
p_entries
[
i_pos
];
struct
vlc_dictionary_entry_t
*
p_prev
;
vlc_dictionary_entry_t
*
p_prev
;
if
(
!
p_entry
)
if
(
!
p_entry
)
return
;
/* Not found, nothing to do */
return
;
/* Not found, nothing to do */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment