Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
5532cf31
Commit
5532cf31
authored
Oct 18, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avutil/mem: K&R formatting cosmetics
parent
c0853697
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
40 deletions
+41
-40
mem.c
libavutil/mem.c
+39
-38
mem.h
libavutil/mem.h
+2
-2
No files found.
libavutil/mem.c
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
)
...
...
libavutil/mem.h
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
;
...
...
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