Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
714d6155
Commit
714d6155
authored
Nov 24, 2009
by
Rémi Duraffort
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
compat: implement tdestroy (GNU extension not available on OpenBSD).
parent
dbee2434
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
1 deletion
+58
-1
compat/tdestroy.c
compat/tdestroy.c
+52
-0
configure.ac
configure.ac
+1
-1
include/vlc_fixups.h
include/vlc_fixups.h
+5
-0
No files found.
compat/tdestroy.c
0 → 100644
View file @
714d6155
/*****************************************************************************
* tdestroy.c: GNU tdestroy() replacement
*****************************************************************************
* Copyright 1998-2009 the VideoLAN project
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include <search.h>
typedef
struct
node_t
{
void
*
key
;
struct
node_t
*
left
,
*
right
;
}
node
;
static
void
tdestroy_recurse
(
node
*
root
,
__free_fn_t
freefct
)
{
if
(
root
->
left
!=
NULL
)
tdestroy_recurse
(
root
->
left
,
freefct
);
if
(
root
->
right
!=
NULL
)
tdestroy_recurse
(
root
->
right
,
freefct
);
(
*
freefct
)
((
void
*
)
root
->
key
);
/* Free the node itself. */
free
(
root
);
}
void
tdestroy
(
void
*
vroot
,
__free_fn_t
freefct
)
{
node
*
root
=
(
node
*
)
vroot
;
if
(
root
!=
NULL
)
{
tdestroy_recurse
(
root
,
freefct
);
}
}
configure.ac
View file @
714d6155
...
@@ -582,7 +582,7 @@ need_libc=false
...
@@ -582,7 +582,7 @@ need_libc=false
dnl Check for usual libc functions
dnl Check for usual libc functions
AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
AC_CHECK_FUNCS(fcntl)
AC_CHECK_FUNCS(fcntl)
AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll vasprintf swab])
AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll vasprintf swab
tdestroy
])
AC_CHECK_FUNCS([stricmp strnicmp])
AC_CHECK_FUNCS([stricmp strnicmp])
AC_CHECK_FUNCS(fdatasync,,
AC_CHECK_FUNCS(fdatasync,,
[AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
[AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
...
...
include/vlc_fixups.h
View file @
714d6155
...
@@ -204,4 +204,9 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base)
...
@@ -204,4 +204,9 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base)
void
swab
(
const
void
*
,
void
*
,
ssize_t
);
void
swab
(
const
void
*
,
void
*
,
ssize_t
);
#endif
#endif
#ifndef HAVE_TDESTROY
typedef
void
(
*
__free_fn_t
)
(
void
*
__nodep
);
void
tdestroy
(
void
*
vroot
,
__free_fn_t
freefct
);
#endif
#endif
/* !LIBVLC_FIXUPS_H */
#endif
/* !LIBVLC_FIXUPS_H */
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