Author: cmpilato Date: Thu Jun 2 17:36:59 2011 New Revision: 1130679 URL: http://svn.apache.org/viewvc?rev=1130679&view=rev Log: Minor improvements to the ra_serf baseline caching code. No behavioral changes intended or expected.
* subversion/libsvn_ra_serf/blncache.c (baseline_info_t): Rename 'revsion' member to 'revision'. (struct svn_ra_serf__blncache_t): Remove unnecessary 'cache_pool' member. (baseline_info_make, svn_ra_serf__blncache_get_baseline_info): Track renamed structure member. (recycle_cache_if_needed, svn_ra_serf__blncache_set): Use apr_hash_pool_get() to determine the cache pool rather than the (now removed) 'cache_pool' structure member. Modified: subversion/trunk/subversion/libsvn_ra_serf/blncache.c Modified: subversion/trunk/subversion/libsvn_ra_serf/blncache.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/blncache.c?rev=1130679&r1=1130678&r2=1130679&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_ra_serf/blncache.c (original) +++ subversion/trunk/subversion/libsvn_ra_serf/blncache.c Thu Jun 2 17:36:59 2011 @@ -34,21 +34,19 @@ typedef struct baseline_info_t { const char *bc_url; - svn_revnum_t revsion; + svn_revnum_t revision; } baseline_info_t; struct svn_ra_serf__blncache_t { - /* Pool to store cached data. */ - apr_pool_t *cache_pool; - /** A hash containing as keys svn_revnum_t of baseline; the values are * baseline collection URL. */ apr_hash_t *revnum_to_bc; /** A hash containing as keys baseline URL; the values are - * (baseline_info_t *) structures. + * (baseline_info_t *) structures. (This is allocated from the same + * pool as 'revnum_to_bc'.) */ apr_hash_t *baseline_info; }; @@ -61,7 +59,7 @@ baseline_info_make(const char *bc_url, baseline_info_t *result = apr_palloc(pool, sizeof(*result)); result->bc_url = apr_pstrdup(pool, bc_url); - result->revsion = revision; + result->revision = revision; return result; } @@ -74,9 +72,8 @@ svn_ra_serf__blncache_create(svn_ra_serf /* Create subpool for cached data. It will be cleared if we reach maximum * cache size.*/ - blncache->cache_pool = svn_pool_create(pool); - blncache->revnum_to_bc = apr_hash_make(blncache->cache_pool); - blncache->baseline_info = apr_hash_make(blncache->cache_pool); + blncache->revnum_to_bc = apr_hash_make(pool); + blncache->baseline_info = apr_hash_make(pool); *blncache_p = blncache; @@ -116,9 +113,10 @@ recycle_cache_if_needed(svn_ra_serf__bln if (cache_size > MAX_CACHE_SIZE) { /* Clear cache pool and create new hash tables. */ - svn_pool_clear(blncache->cache_pool); - blncache->revnum_to_bc = apr_hash_make(blncache->cache_pool); - blncache->baseline_info = apr_hash_make(blncache->cache_pool); + apr_pool_t *cache_pool = apr_hash_pool_get(blncache->revnum_to_bc); + svn_pool_clear(cache_pool); + blncache->revnum_to_bc = apr_hash_make(cache_pool); + blncache->baseline_info = apr_hash_make(cache_pool); } } @@ -131,17 +129,18 @@ svn_ra_serf__blncache_set(svn_ra_serf__b { if (bc_url && SVN_IS_VALID_REVNUM(revision)) { + apr_pool_t *cache_pool = apr_hash_pool_get(blncache->revnum_to_bc); + recycle_cache_if_needed(blncache); hash_set_copy(blncache->revnum_to_bc, &revision, sizeof(revision), - apr_pstrdup(blncache->cache_pool, bc_url)); + apr_pstrdup(cache_pool, bc_url)); if (baseline_url) { hash_set_copy(blncache->baseline_info, baseline_url, APR_HASH_KEY_STRING, - baseline_info_make(bc_url, revision, - blncache->cache_pool)); + baseline_info_make(bc_url, revision, cache_pool)); } } @@ -187,7 +186,7 @@ svn_ra_serf__blncache_get_baseline_info( { /* Copy baseline collection URL to result pool. */ *bc_url_p = apr_pstrdup(pool, info->bc_url); - *revision_p = info->revsion; + *revision_p = info->revision; } else {