9c545b9 Issue 51076 - remove unnecessary slapi entry dups

Authored and Committed by mreynolds 3 years ago
    Issue 51076 - remove unnecessary slapi entry dups
    
    Description:  So the problem is that slapi_search_internal_get_entry()
                  duplicates the entry twice.  It does that as a convenience
                  where it will allocate a pblock, do the search, copy
                  the entry, free search results from the pblock, and then
                  free the pblock itself.  I basically split this function
                  into two functions.  One function allocates the pblock,
                  does the search and returns the entry.  The other function
                  frees the entries and pblock.
    
                  99% of time when we call slapi_search_internal_get_entry()
                  we are just reading it and freeing it.  It's not being
                  consumed.  In these cases we can use the two function
                  approach eliminates an extra slapi_entry_dup().  Over the
                  time of an operation/connection we can save quite a bit
                  of mallocing/freeing.  This could also help with memory
                  fragmentation.
    
    ASAN: passed
    
    relates: https://pagure.io/389-ds-base/issue/51076
    
    Reviewed by: firstyear & tbordaz(Thanks!)
    
        
file modified
+3 -8
file modified
+8 -4
file modified
+3 -4