Commit fdb4cc7e authored by csharptest's avatar csharptest Committed by rogerk

Adde 'Unsafe' static type in ByteString to allow direct buffer manipulation without

copying bytes.  Should be used very cautiously as modifications to buffers may result
in unexpected behavior.
parent 92fcf353
...@@ -52,6 +52,30 @@ namespace Google.ProtocolBuffers ...@@ -52,6 +52,30 @@ namespace Google.ProtocolBuffers
private readonly byte[] bytes; private readonly byte[] bytes;
/// <summary>
/// Unsafe operations that can cause IO Failure and/or other catestrophic side-effects.
/// </summary>
public static class Unsafe
{
/// <summary>
/// Constructs a new ByteString from the given byte array. The array is
/// *not* copied, and must not be modified after this constructor is called.
/// </summary>
public static ByteString FromBytes(byte[] bytes)
{
return new ByteString(bytes);
}
/// <summary>
/// Provides direct, unrestricted access to the bytes contained in this instance.
/// You must not modify or resize the byte array returned by this method.
/// </summary>
public static byte[] GetBuffer(ByteString bytes)
{
return bytes.bytes;
}
}
/// <summary> /// <summary>
/// Internal use only. Ensure that the provided array is not mutated and belongs to this instance. /// Internal use only. Ensure that the provided array is not mutated and belongs to this instance.
/// </summary> /// </summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment