library: tweak new interface code and improve comments
With a little help from smatch, this commit eliminates some inappropriate code. Also some programmer comments were (barely) improved (i hope) in some small measure. Reference(s): smatch: 406 procps_meminfo_chain_fill() warn: variable dereferenced before check 'chain' (see line 403) Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
8d9612f782
commit
74cb6afcc9
@ -400,16 +400,14 @@ PROCPS_EXPORT int procps_meminfo_chain_fill (
|
|||||||
struct procps_meminfo *info,
|
struct procps_meminfo *info,
|
||||||
struct meminfo_chain *chain)
|
struct meminfo_chain *chain)
|
||||||
{
|
{
|
||||||
struct meminfo_result *these = chain->head;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (info == NULL || chain == NULL || these == NULL)
|
if (info == NULL || chain == NULL || chain->head == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if ((rc == procps_meminfo_read(info)) < 0)
|
if ((rc == procps_meminfo_read(info)) < 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
return procps_meminfo_getchain(info, these);
|
return procps_meminfo_getchain(info, chain->head);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void chains_validate (struct meminfo_chain **v, const char *who)
|
static void chains_validate (struct meminfo_chain **v, const char *who)
|
||||||
@ -535,7 +533,7 @@ static struct meminfo_chain **procps_meminfo_chains_alloc (
|
|||||||
* Allocate and initialize a single result chain under a simplified interface.
|
* Allocate and initialize a single result chain under a simplified interface.
|
||||||
*
|
*
|
||||||
* Such a chain will will have its result structures properly primed with
|
* Such a chain will will have its result structures properly primed with
|
||||||
* 'items' and 'next' pointers, while the result itself is set to zero.
|
* 'items' and 'next' pointers, while the result itself will be zeroed.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
PROCPS_EXPORT struct meminfo_chain *procps_meminfo_chain_alloc (
|
PROCPS_EXPORT struct meminfo_chain *procps_meminfo_chain_alloc (
|
||||||
|
12
proc/slab.c
12
proc/slab.c
@ -565,12 +565,10 @@ PROCPS_EXPORT int procps_slabnode_chain_fill (
|
|||||||
struct slabnode_chain *chain,
|
struct slabnode_chain *chain,
|
||||||
int nodeid)
|
int nodeid)
|
||||||
{
|
{
|
||||||
struct slabnode_result *these = chain->head;
|
if (info == NULL || chain == NULL || chain->head == NULL)
|
||||||
|
|
||||||
if (info == NULL || these == NULL)
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return procps_slabnode_getchain(info, these, nodeid);
|
return procps_slabnode_getchain(info, chain->head, nodeid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -746,7 +744,7 @@ PROCPS_EXPORT struct slabnode_chain **procps_slabnode_chains_alloc (
|
|||||||
* Allocate and initialize a single result chain under a simplified interface.
|
* Allocate and initialize a single result chain under a simplified interface.
|
||||||
*
|
*
|
||||||
* Such a chain will will have its result structures properly primed with
|
* Such a chain will will have its result structures properly primed with
|
||||||
* 'items' and 'next' pointers, while the result itself is set to zero.
|
* 'items' and 'next' pointers, while the result itself will be zeroed.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
PROCPS_EXPORT struct slabnode_chain *procps_slabnode_chain_alloc (
|
PROCPS_EXPORT struct slabnode_chain *procps_slabnode_chain_alloc (
|
||||||
@ -772,7 +770,7 @@ static int chains_sort (
|
|||||||
{
|
{
|
||||||
const struct slabnode_result *a = (*A)->head + *offset;
|
const struct slabnode_result *a = (*A)->head + *offset;
|
||||||
const struct slabnode_result *b = (*B)->head + *offset;
|
const struct slabnode_result *b = (*B)->head + *offset;
|
||||||
// note: strings are sorted normally, but numbers will be high-to-low
|
// note: everything will be sorted high-to-low
|
||||||
if (a->item == PROCPS_SLABNODE_NAME)
|
if (a->item == PROCPS_SLABNODE_NAME)
|
||||||
return strcoll(a->result.str, b->result.str);
|
return strcoll(a->result.str, b->result.str);
|
||||||
if ( a->result.num > b->result.num ) return -1;
|
if ( a->result.num > b->result.num ) return -1;
|
||||||
@ -786,7 +784,7 @@ static int chains_sort (
|
|||||||
* Sort chains anchored as 'heads' in the passed slabnode_chain pointers
|
* Sort chains anchored as 'heads' in the passed slabnode_chain pointers
|
||||||
* array based on the designated sort enumerator.
|
* array based on the designated sort enumerator.
|
||||||
*
|
*
|
||||||
* Returns the same structure with those pointers sorted.
|
* Returns those same addresses sorted.
|
||||||
*
|
*
|
||||||
* Note: all of the chains must be homogeneous (of equal length and content).
|
* Note: all of the chains must be homogeneous (of equal length and content).
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user