[MethodImpl(MethodImplOptions.NoInlining)] // the caller should be inlined, not this method private static UnicodeRange CreateEmptyRange(ref UnicodeRange range) { // If the range hasn't been created, create it now. // It's ok if two threads race and one overwrites the other's 'range' value. var newRange = new UnicodeRange(0, 0); Volatile.Write(ref range, newRange); return(newRange); }
[MethodImpl(MethodImplOptions.NoInlining)] // the caller should be inlined, not this method private static UnicodeRange CreateRange(ref UnicodeRange range, char first, char last) { // If the range hasn't been created, create it now. // It's ok if two threads race and one overwrites the other's 'range' value. Debug.Assert(last > first, "Code points were specified out of order."); var newRange = UnicodeRange.FromSpan(first, last); Volatile.Write(ref range, newRange); return(newRange); }
/// <summary> /// Disallows all characters specified by <paramref name="range"/> through the filter. /// </summary> /// <returns> /// The 'this' instance. /// </returns> public CodePointFilter ForbidRange(UnicodeRange range) { int firstCodePoint = range.FirstCodePoint; int rangeSize = range.RangeSize; for (int i = 0; i < rangeSize; i++) { _allowedCharsBitmap.ForbidCharacter((char)(firstCodePoint + i)); } return(this); }
/// <summary> /// Allows all characters specified by <paramref name="range"/> through the filter. /// </summary> public virtual void AllowRange(UnicodeRange range) { if (range == null) { throw new ArgumentNullException("range"); } int firstCodePoint = range.FirstCodePoint; int rangeSize = range.Length; for (int i = 0; i < rangeSize; i++) { _allowedCharactersBitmap.AllowCharacter((char)(firstCodePoint + i)); } }
/// <summary> /// Disallows all characters specified by <paramref name="range"/> through the filter. /// </summary> /// <returns> /// The 'this' instance. /// </returns> public CodePointFilter ForbidRange(UnicodeRange range) { if (range == null) { throw new ArgumentNullException("range"); } int firstCodePoint = range.FirstCodePoint; int rangeSize = range.Length; for (int i = 0; i < rangeSize; i++) { _allowedCharactersBitmap.ForbidCharacter((char)(firstCodePoint + i)); } return(this); }
/// <summary> /// Allows all characters specified by <paramref name="range"/> through the filter. /// </summary> public virtual void AllowRange(UnicodeRange range) { if (range is null) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.range); } int firstCodePoint = range.FirstCodePoint; int rangeSize = range.Length; for (int i = 0; i < rangeSize; i++) { int codePoint = firstCodePoint + i; UnicodeDebug.AssertIsBmpCodePoint((uint)codePoint); // UnicodeRange only supports BMP _allowedCodePointsBitmap.AllowChar((char)codePoint); } }
/// <summary> /// Disallows all characters specified by <paramref name="range"/> through the filter. /// </summary> public virtual void ForbidRange(UnicodeRange range) { if (range == null) { throw new ArgumentNullException(nameof(range)); } int firstCodePoint = range.FirstCodePoint; int rangeSize = range.Length; for (int i = 0; i < rangeSize; i++) { int codePoint = firstCodePoint + i; UnicodeDebug.AssertIsBmpCodePoint((uint)codePoint); // UnicodeRange only supports BMP _allowedCodePointsBitmap.ForbidChar((char)codePoint); } }
public static JavaScriptEncoder Create(UnicodeRange range) { return(new JavaScriptEncoder()); }