Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
asterisk
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
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Voice
asterisk
Commits
ffc20301
Commit
ffc20301
authored
7 years ago
by
Jenkins2
Committed by
Gerrit Code Review
7 years ago
Browse files
Options
Downloads
Plain Diff
Merge "stringfields: Remove MALLOC_DEBUG fields from struct ast_string_field_mgr."
parents
beab57a5
ea9768ff
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
include/asterisk/stringfields.h
+25
-19
25 additions, 19 deletions
include/asterisk/stringfields.h
main/stringfields.c
+14
-20
14 additions, 20 deletions
main/stringfields.c
with
39 additions
and
39 deletions
include/asterisk/stringfields.h
+
25
−
19
View file @
ffc20301
...
...
@@ -228,11 +228,6 @@ struct ast_string_field_mgr {
ast_string_field
last_alloc
;
/*!< the last field allocated */
struct
ast_string_field_pool
*
embedded_pool
;
/*!< pointer to the embedded pool, if any */
struct
ast_string_field_vector
string_fields
;
/*!< field vector for compare and copy */
/* v-- MALLOC_DEBUG information */
const
char
*
owner_file
;
/*!< filename of owner */
const
char
*
owner_func
;
/*!< function name of owner */
int
owner_line
;
/*!< line number of owner */
/* ^-- MALLOC_DEBUG information */
};
/*!
...
...
@@ -266,7 +261,8 @@ int __ast_string_field_ptr_grow(struct ast_string_field_mgr *mgr,
an additional pool will be allocated.
*/
ast_string_field
__ast_string_field_alloc_space
(
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
size_t
needed
);
struct
ast_string_field_pool
**
pool_head
,
size_t
needed
,
const
char
*
file
,
int
lineno
,
const
char
*
func
);
/*!
\internal
...
...
@@ -277,9 +273,9 @@ ast_string_field __ast_string_field_alloc_space(struct ast_string_field_mgr *mgr
\param format printf-style format string
\return nothing
*/
void
__ast_string_field_ptr_build
(
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
...)
__attribute__
((
format
(
printf
,
4
,
5
)));
void
__ast_string_field_ptr_build
(
const
char
*
file
,
int
lineno
,
const
char
*
func
,
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
...)
__attribute__
((
format
(
printf
,
7
,
8
)));
/*!
\internal
...
...
@@ -292,8 +288,9 @@ void __ast_string_field_ptr_build(struct ast_string_field_mgr *mgr,
\return nothing
*/
void
__ast_string_field_ptr_build_va
(
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
va_list
ap
)
__attribute__
((
format
(
printf
,
4
,
0
)));
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
va_list
ap
,
const
char
*
file
,
int
lineno
,
const
char
*
func
)
__attribute__
((
format
(
printf
,
4
,
0
)));
/*!
\brief Declare a string field
...
...
@@ -479,7 +476,7 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
__res__; \
})
#define ast_string_field_ptr_set_by_fields(field_mgr_pool, field_mgr, ptr, data
)
\
#define
__
ast_string_field_ptr_set_by_fields(field_mgr_pool, field_mgr, ptr, data
, file, lineno, func)
\
({ \
int __res__ = 0; \
const char *__d__ = (data); \
...
...
@@ -491,7 +488,7 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
*__p__ = __ast_string_field_empty; \
} else if ((__dlen__ <= AST_STRING_FIELD_ALLOCATION(*__p__)) || \
(!__ast_string_field_ptr_grow(&field_mgr, &field_mgr_pool, __dlen__, __p__)) || \
(target = __ast_string_field_alloc_space(&field_mgr, &field_mgr_pool, __dlen__))) { \
(target = __ast_string_field_alloc_space(&field_mgr, &field_mgr_pool, __dlen__
, file, lineno, func
))) { \
if (target != *__p__) { \
__ast_string_field_release_active(field_mgr_pool, *__p__); \
*__p__ = target; \
...
...
@@ -503,6 +500,9 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
__res__; \
})
#define ast_string_field_ptr_set_by_fields(field_mgr_pool, field_mgr, ptr, data) \
__ast_string_field_ptr_set_by_fields(field_mgr_pool, field_mgr, ptr, data, __FILE__, __LINE__, __PRETTY_FUNCTION__)
/*!
\brief Set a field to a simple string value
\param x Pointer to a structure containing fields
...
...
@@ -532,7 +532,8 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
({ \
int __res__ = -1; \
if (((void *)(x)) != NULL) { \
__ast_string_field_ptr_build(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) ptr, fmt, args); \
__ast_string_field_ptr_build(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) ptr, fmt, args); \
__res__ = 0; \
} \
__res__; \
...
...
@@ -550,7 +551,8 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
({ \
int __res__ = -1; \
if (((void *)(x)) != NULL) { \
__ast_string_field_ptr_build(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) &(x)->field, fmt, args); \
__ast_string_field_ptr_build(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) &(x)->field, fmt, args); \
__res__ = 0; \
} \
__res__; \
...
...
@@ -568,7 +570,8 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
({ \
int __res__ = -1; \
if (((void *)(x)) != NULL) { \
__ast_string_field_ptr_build_va(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) ptr, fmt, args); \
__ast_string_field_ptr_build_va(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) ptr, fmt, args, \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
__res__ = 0; \
} \
__res__; \
...
...
@@ -586,7 +589,8 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
({ \
int __res__ = -1; \
if (((void *)(x)) != NULL) { \
__ast_string_field_ptr_build_va(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) &(x)->field, fmt, args); \
__ast_string_field_ptr_build_va(&(x)->__field_mgr, &(x)->__field_mgr_pool, (ast_string_field *) &(x)->field, fmt, args, \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
__res__ = 0; \
} \
__res__; \
...
...
@@ -626,12 +630,14 @@ int __ast_string_fields_cmp(struct ast_string_field_vector *left, struct ast_str
if (((void *)(copy)) != NULL && ((void *)(orig)) != NULL) { \
__res__ = __ast_string_fields_copy(((copy)->__field_mgr_pool), \
(struct ast_string_field_mgr *)&((copy)->__field_mgr), \
(struct ast_string_field_mgr *)&((orig)->__field_mgr)); \
(struct ast_string_field_mgr *)&((orig)->__field_mgr), \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
} \
__res__; \
})
int
__ast_string_fields_copy
(
struct
ast_string_field_pool
*
copy_pool
,
struct
ast_string_field_mgr
*
copy_mgr
,
struct
ast_string_field_mgr
*
orig_mgr
);
struct
ast_string_field_mgr
*
copy_mgr
,
struct
ast_string_field_mgr
*
orig_mgr
,
const
char
*
file
,
int
lineno
,
const
char
*
func
);
#endif
/* _ASTERISK_STRINGFIELDS_H */
This diff is collapsed.
Click to expand it.
main/stringfields.c
+
14
−
20
View file @
ffc20301
...
...
@@ -179,11 +179,6 @@ int __ast_string_field_init(struct ast_string_field_mgr *mgr, struct ast_string_
}
mgr
->
last_alloc
=
NULL
;
/* v-- MALLOC_DEBUG information */
mgr
->
owner_file
=
file
;
mgr
->
owner_func
=
func
;
mgr
->
owner_line
=
lineno
;
/* ^-- MALLOC_DEBUG information */
if
(
AST_VECTOR_INIT
(
&
mgr
->
string_fields
,
initial_vector_size
))
{
return
-
1
;
...
...
@@ -205,7 +200,8 @@ int __ast_string_field_init(struct ast_string_field_mgr *mgr, struct ast_string_
}
ast_string_field
__ast_string_field_alloc_space
(
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
size_t
needed
)
struct
ast_string_field_pool
**
pool_head
,
size_t
needed
,
const
char
*
file
,
int
lineno
,
const
char
*
func
)
{
char
*
result
=
NULL
;
size_t
space
=
(
*
pool_head
)
->
size
-
(
*
pool_head
)
->
used
;
...
...
@@ -222,8 +218,7 @@ ast_string_field __ast_string_field_alloc_space(struct ast_string_field_mgr *mgr
new_size
*=
2
;
}
if
(
add_string_pool
(
mgr
,
pool_head
,
new_size
,
mgr
->
owner_file
,
mgr
->
owner_line
,
mgr
->
owner_func
))
{
if
(
add_string_pool
(
mgr
,
pool_head
,
new_size
,
file
,
lineno
,
func
))
{
return
NULL
;
}
}
...
...
@@ -290,7 +285,8 @@ void __ast_string_field_release_active(struct ast_string_field_pool *pool_head,
void
__ast_string_field_ptr_build_va
(
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
va_list
ap
)
const
char
*
format
,
va_list
ap
,
const
char
*
file
,
int
lineno
,
const
char
*
func
)
{
size_t
needed
;
size_t
available
;
...
...
@@ -342,7 +338,8 @@ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr,
(if it has one), or the space available in the pool (if it does not). allocate
space for it, adding a new string pool if necessary.
*/
if
(
!
(
target
=
(
char
*
)
__ast_string_field_alloc_space
(
mgr
,
pool_head
,
needed
)))
{
target
=
(
char
*
)
__ast_string_field_alloc_space
(
mgr
,
pool_head
,
needed
,
file
,
lineno
,
func
);
if
(
!
target
)
{
return
;
}
vsprintf
(
target
,
format
,
ap
);
...
...
@@ -369,13 +366,14 @@ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr,
}
}
void
__ast_string_field_ptr_build
(
struct
ast_string_field_mgr
*
mgr
,
void
__ast_string_field_ptr_build
(
const
char
*
file
,
int
lineno
,
const
char
*
func
,
struct
ast_string_field_mgr
*
mgr
,
struct
ast_string_field_pool
**
pool_head
,
ast_string_field
*
ptr
,
const
char
*
format
,
...)
{
va_list
ap
;
va_start
(
ap
,
format
);
__ast_string_field_ptr_build_va
(
mgr
,
pool_head
,
ptr
,
format
,
ap
);
__ast_string_field_ptr_build_va
(
mgr
,
pool_head
,
ptr
,
format
,
ap
,
file
,
lineno
,
func
);
va_end
(
ap
);
}
...
...
@@ -419,11 +417,6 @@ void *__ast_calloc_with_stringfields(unsigned int num_structs, size_t struct_siz
mgr
->
embedded_pool
=
pool
;
*
pool_head
=
pool
;
pool
->
size
=
size_to_alloc
-
struct_size
-
sizeof
(
*
pool
);
/* v-- MALLOC_DEBUG information */
mgr
->
owner_file
=
file
;
mgr
->
owner_func
=
func
;
mgr
->
owner_line
=
lineno
;
/* ^-- MALLOC_DEBUG information */
return
allocation
;
}
...
...
@@ -446,7 +439,8 @@ int __ast_string_fields_cmp(struct ast_string_field_vector *left,
}
int
__ast_string_fields_copy
(
struct
ast_string_field_pool
*
copy_pool
,
struct
ast_string_field_mgr
*
copy_mgr
,
struct
ast_string_field_mgr
*
orig_mgr
)
struct
ast_string_field_mgr
*
copy_mgr
,
struct
ast_string_field_mgr
*
orig_mgr
,
const
char
*
file
,
int
lineno
,
const
char
*
func
)
{
int
i
;
struct
ast_string_field_vector
*
dest
=
&
(
copy_mgr
->
string_fields
);
...
...
@@ -460,8 +454,8 @@ int __ast_string_fields_copy(struct ast_string_field_pool *copy_pool,
}
for
(
i
=
0
;
i
<
AST_VECTOR_SIZE
(
dest
);
i
++
)
{
if
(
ast_string_field_ptr_set_by_fields
(
copy_pool
,
*
copy_mgr
,
AST_VECTOR_GET
(
dest
,
i
),
*
AST_VECTOR_GET
(
src
,
i
)))
{
if
(
__
ast_string_field_ptr_set_by_fields
(
copy_pool
,
*
copy_mgr
,
AST_VECTOR_GET
(
dest
,
i
),
*
AST_VECTOR_GET
(
src
,
i
)
,
file
,
lineno
,
func
))
{
return
-
1
;
}
}
...
...
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