internal static unsafe SvnPropertyCollection CreatePropertyDictionary(apr_hash_t propHash, AprPool pool) { if (propHash == null) { throw new ArgumentNullException(nameof(propHash)); } if (pool == null) { throw new ArgumentNullException(nameof(pool)); } var _properties = new SvnPropertyCollection(); for (var hi = apr_hash.apr_hash_first(pool.Handle, propHash); hi != null; hi = apr_hash.apr_hash_next(hi)) { sbyte *pKey; long keyLen = 0; svn_string_t.__Internal *propValPtr; apr_hash.apr_hash_this(hi, (void **)&pKey, ref keyLen, (void **)&propValPtr); var propVal = svn_string_t.__CreateInstance(new IntPtr(propValPtr)); _properties.Add(SvnPropertyValue.Create(pKey, propVal, null)); } return(_properties); }