forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			717 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			717 B
		
	
	
	
		
			C#
		
	
	
	
	
	
//
 | 
						|
// Author:
 | 
						|
//   Jb Evain (jbevain@gmail.com)
 | 
						|
//
 | 
						|
// Copyright (c) 2008 - 2015 Jb Evain
 | 
						|
// Copyright (c) 2008 - 2011 Novell, Inc.
 | 
						|
//
 | 
						|
// Licensed under the MIT/X11 license.
 | 
						|
//
 | 
						|
 | 
						|
namespace MonoFN.Cecil.Metadata {
 | 
						|
 | 
						|
	sealed class UserStringHeap : StringHeap {
 | 
						|
 | 
						|
		public UserStringHeap (byte [] data)
 | 
						|
			: base (data)
 | 
						|
		{
 | 
						|
		}
 | 
						|
 | 
						|
		protected override string ReadStringAt (uint index)
 | 
						|
		{
 | 
						|
			int start = (int)index;
 | 
						|
 | 
						|
			uint length = (uint)(data.ReadCompressedUInt32 (ref start) & ~1);
 | 
						|
			if (length < 1)
 | 
						|
				return string.Empty;
 | 
						|
 | 
						|
			var chars = new char [length / 2];
 | 
						|
 | 
						|
			for (int i = start, j = 0; i < start + length; i += 2)
 | 
						|
				chars [j++] = (char)(data [i] | (data [i + 1] << 8));
 | 
						|
 | 
						|
			return new string (chars);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |