示例#1
0
        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);
        }