mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix.
With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example). git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@182802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -57,7 +57,7 @@ void ast_slinfactory_destroy(struct ast_slinfactory *sf)
|
||||
int ast_slinfactory_feed(struct ast_slinfactory *sf, struct ast_frame *f)
|
||||
{
|
||||
struct ast_frame *begin_frame = f, *duped_frame = NULL, *frame_ptr;
|
||||
unsigned int x;
|
||||
unsigned int x = 0;
|
||||
|
||||
/* In some cases, we can be passed a frame which has no data in it, but
|
||||
* which has a positive number of samples defined. Once such situation is
|
||||
@@ -84,27 +84,33 @@ int ast_slinfactory_feed(struct ast_slinfactory *sf, struct ast_frame *f)
|
||||
}
|
||||
}
|
||||
|
||||
if (!(begin_frame = ast_translate(sf->trans, f, 0)))
|
||||
if (!(begin_frame = ast_translate(sf->trans, f, 0))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
duped_frame = ast_frdup(begin_frame);
|
||||
|
||||
ast_frfree(begin_frame);
|
||||
|
||||
if (!duped_frame)
|
||||
if (!(duped_frame = ast_frisolate(begin_frame))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (duped_frame != begin_frame) {
|
||||
ast_frfree(begin_frame);
|
||||
}
|
||||
} else {
|
||||
if (!(duped_frame = ast_frdup(f)))
|
||||
return 0;
|
||||
}
|
||||
|
||||
x = 0;
|
||||
AST_LIST_TRAVERSE(&sf->queue, frame_ptr, frame_list)
|
||||
AST_LIST_TRAVERSE(&sf->queue, frame_ptr, frame_list) {
|
||||
x++;
|
||||
}
|
||||
|
||||
AST_LIST_INSERT_TAIL(&sf->queue, duped_frame, frame_list);
|
||||
|
||||
sf->size += duped_frame->samples;
|
||||
/* if the frame was translated, the translator may have returned multiple
|
||||
frames, so process each of them
|
||||
*/
|
||||
for (begin_frame = duped_frame; begin_frame; begin_frame = AST_LIST_NEXT(begin_frame, frame_list)) {
|
||||
AST_LIST_INSERT_TAIL(&sf->queue, begin_frame, frame_list);
|
||||
sf->size += begin_frame->samples;
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
Reference in New Issue
Block a user