Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
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