Open
Description
Is there an existing proposal for this?
- I have searched the existing proposals
Is your feature request related to a problem?
cppcheck
output:
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:945:9: error: Non-local variable 'g_bufferFactory_p' will use pointer to local variable 'bufferFactory'. [danglingLifetime]
g_bufferFactory_p = &bufferFactory;
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:945:33: note: Address of variable taken here.
g_bufferFactory_p = &bufferFactory;
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:941:40: note: Variable created here.
bdlbb::PooledBlobBufferFactory bufferFactory(k_LONG_ENTRY_LENGTH * 2,
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:945:9: note: Non-local variable 'g_bufferFactory_p' will use pointer to local variable 'bufferFactory'.
g_bufferFactory_p = &bufferFactory;
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:946:9: error: Non-local variable 'g_miniBufferFactory_p' will use pointer to local variable 'miniBufferFactory'. [danglingLifetime]
g_miniBufferFactory_p = &miniBufferFactory;
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:946:33: note: Address of variable taken here.
g_miniBufferFactory_p = &miniBufferFactory;
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:943:40: note: Variable created here.
bdlbb::PooledBlobBufferFactory miniBufferFactory(k_ENTRY_LENGTH,
^
src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp:946:9: note: Non-local variable 'g_miniBufferFactory_p' will use pointer to local variable 'miniBufferFactory'.
g_miniBufferFactory_p = &miniBufferFactory;
Describe the solution you'd like
Will be nice to remove global objects construction from here:
blazingmq/src/groups/mqb/mqbsl/mqbsl_readwriteondisklog.t.cpp
Lines 941 to 946 in ca6491f
And make it a field of the Tester
class, which is constructed locally for each test.
Current implementation has a good point - it builds these global objects once and saves some processing time on rebuilding it. But this also might be a problem, because it's a shared state among tests.
Alternatives you considered
No response