Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
FFmpeg
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
libremedia
Tethys
FFmpeg
Commits
5532cf31
Commit
5532cf31
authored
12 years ago
by
Diego Biurrun
Browse files
Options
Downloads
Patches
Plain Diff
avutil/mem: K&R formatting cosmetics
parent
c0853697
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
libavutil/mem.c
+39
-38
39 additions, 38 deletions
libavutil/mem.c
libavutil/mem.h
+2
-2
2 additions, 2 deletions
libavutil/mem.h
with
41 additions
and
40 deletions
libavutil/mem.c
+
39
−
38
View file @
5532cf31
...
...
@@ -58,8 +58,8 @@ void free(void *ptr);
#endif
/* MALLOC_PREFIX */
/* You can redefine av_malloc and av_free in your project to use your
memory allocator. You do not need to suppress this file because the
linker will do it automatically. */
*
memory allocator. You do not need to suppress this file because the
*
linker will do it automatically. */
void
*
av_malloc
(
size_t
size
)
{
...
...
@@ -69,46 +69,46 @@ void *av_malloc(size_t size)
#endif
/* let's disallow possible ambiguous cases */
if
(
size
>
(
INT_MAX
-
32
)
||
!
size
)
if
(
size
>
(
INT_MAX
-
32
)
||
!
size
)
return
NULL
;
#if CONFIG_MEMALIGN_HACK
ptr
=
malloc
(
size
+
32
);
if
(
!
ptr
)
ptr
=
malloc
(
size
+
32
);
if
(
!
ptr
)
return
ptr
;
diff
=
((
-
(
long
)
ptr
-
1
)
&
31
)
+
1
;
ptr
=
(
char
*
)
ptr
+
diff
;
((
char
*
)
ptr
)[
-
1
]
=
diff
;
diff
=
((
-
(
long
)
ptr
-
1
)
&
31
)
+
1
;
ptr
=
(
char
*
)
ptr
+
diff
;
((
char
*
)
ptr
)[
-
1
]
=
diff
;
#elif HAVE_POSIX_MEMALIGN
if
(
posix_memalign
(
&
ptr
,
32
,
size
))
if
(
posix_memalign
(
&
ptr
,
32
,
size
))
ptr
=
NULL
;
#elif HAVE_ALIGNED_MALLOC
ptr
=
_aligned_malloc
(
size
,
32
);
#elif HAVE_MEMALIGN
ptr
=
memalign
(
32
,
size
);
ptr
=
memalign
(
32
,
size
);
/* Why 64?
Indeed, we should align it:
on 4 for 386
on 16 for 486
on 32 for 586, PPro - K6-III
on 64 for K7 (maybe for P3 too).
Because L1 and L2 caches are aligned on those values.
But I don't want to code such logic here!
*
Indeed, we should align it:
*
on
4 for 386
*
on 16 for 486
*
on 32 for 586, PPro - K6-III
*
on 64 for K7 (maybe for P3 too).
*
Because L1 and L2 caches are aligned on those values.
*
But I don't want to code such logic here!
*/
/* Why 32?
For AVX ASM. SSE / NEON needs only 16.
Why not larger? Because I did not see a difference in benchmarks ...
/* Why 32?
*
For AVX ASM. SSE / NEON needs only 16.
*
Why not larger? Because I did not see a difference in benchmarks ...
*/
/* benchmarks with P3
memalign(64)
+
1 3071,3051,3032
memalign(64)
+
2 3051,3032,3041
memalign(64)
+
4 2911,2896,2915
memalign(64)
+
8 2545,2554,2550
memalign(64)
+
16 2543,2572,2563
memalign(64)
+
32 2546,2545,2571
memalign(64)
+
64 2570,2533,2558
BTW, malloc seems to do 8-byte alignment by default here.
/* benchmarks with P3
*
memalign(64)
+
1 3071,
3051,
3032
*
memalign(64)
+
2 3051,
3032,
3041
*
memalign(64)
+
4 2911,
2896,
2915
*
memalign(64)
+
8 2545,
2554,
2550
*
memalign(64)
+
16 2543,
2572,
2563
*
memalign(64)
+
32 2546,
2545,
2571
*
memalign(64)
+
64 2570,
2533,
2558
*
*
BTW, malloc seems to do 8-byte alignment by default here.
*/
#else
ptr
=
malloc
(
size
);
...
...
@@ -123,14 +123,15 @@ void *av_realloc(void *ptr, size_t size)
#endif
/* let's disallow possible ambiguous cases */
if
(
size
>
(
INT_MAX
-
16
)
)
if
(
size
>
(
INT_MAX
-
16
))
return
NULL
;
#if CONFIG_MEMALIGN_HACK
//FIXME this isn't aligned correctly, though it probably isn't needed
if
(
!
ptr
)
return
av_malloc
(
size
);
diff
=
((
char
*
)
ptr
)[
-
1
];
return
(
char
*
)
realloc
((
char
*
)
ptr
-
diff
,
size
+
diff
)
+
diff
;
if
(
!
ptr
)
return
av_malloc
(
size
);
diff
=
((
char
*
)
ptr
)[
-
1
];
return
(
char
*
)
realloc
((
char
*
)
ptr
-
diff
,
size
+
diff
)
+
diff
;
#elif HAVE_ALIGNED_MALLOC
return
_aligned_realloc
(
ptr
,
size
,
32
);
#else
...
...
@@ -142,7 +143,7 @@ void av_free(void *ptr)
{
#if CONFIG_MEMALIGN_HACK
if
(
ptr
)
free
((
char
*
)
ptr
-
((
char
*
)
ptr
)[
-
1
]);
free
((
char
*
)
ptr
-
((
char
*
)
ptr
)[
-
1
]);
#elif HAVE_ALIGNED_MALLOC
_aligned_free
(
ptr
);
#else
...
...
@@ -152,7 +153,7 @@ void av_free(void *ptr)
void
av_freep
(
void
*
arg
)
{
void
**
ptr
=
(
void
**
)
arg
;
void
**
ptr
=
(
void
**
)
arg
;
av_free
(
*
ptr
);
*
ptr
=
NULL
;
}
...
...
@@ -167,8 +168,8 @@ void *av_mallocz(size_t size)
char
*
av_strdup
(
const
char
*
s
)
{
char
*
ptr
=
NULL
;
if
(
s
){
char
*
ptr
=
NULL
;
if
(
s
)
{
int
len
=
strlen
(
s
)
+
1
;
ptr
=
av_malloc
(
len
);
if
(
ptr
)
...
...
This diff is collapsed.
Click to expand it.
libavutil/mem.h
+
2
−
2
View file @
5532cf31
...
...
@@ -89,7 +89,7 @@ void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1);
* be allocated.
* @see av_malloc()
*/
av_alloc_size
(
1
,
2
)
static
inline
void
*
av_malloc_array
(
size_t
nmemb
,
size_t
size
)
av_alloc_size
(
1
,
2
)
static
inline
void
*
av_malloc_array
(
size_t
nmemb
,
size_t
size
)
{
if
(
size
<=
0
||
nmemb
>=
INT_MAX
/
size
)
return
NULL
;
...
...
@@ -140,7 +140,7 @@ void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
* @see av_mallocz()
* @see av_malloc_array()
*/
av_alloc_size
(
1
,
2
)
static
inline
void
*
av_mallocz_array
(
size_t
nmemb
,
size_t
size
)
av_alloc_size
(
1
,
2
)
static
inline
void
*
av_mallocz_array
(
size_t
nmemb
,
size_t
size
)
{
if
(
size
<=
0
||
nmemb
>=
INT_MAX
/
size
)
return
NULL
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment