/// <summary> /// Reads the constants. /// </summary> /// <param name="stream">The stream to read from.</param> /// <param name="count">The constant count.</param> /// <returns>A new <see cref="JavaConstantPool"/> containing all constants.</returns> private static JavaConstantPool ReadConstants(Stream stream, int count) { // Count is -1 for some reason. IJavaConstant[] constants = new IJavaConstant[count - 1]; for (int i = 0; i < count - 1; i++) { IJavaConstant constant = ReadConstant(stream); constants[i] = constant; if (constant is JavaConstantLong || constant is JavaConstantDouble) { constants[++i] = constant; // 8byte constants take 2 entries. } } return(new JavaConstantPool(constants)); }
public void TryGetOne() { AssertThat(() => { IJavaConstant c = _jcp[1]; }).DoesNotThrowException(); AssertThat(_jcp[1]).IsNull(); }
public void TryGetTwo() { AssertThat(() => { IJavaConstant c = _jcp[2]; }).ThrowsExactlyException <IndexOutOfRangeException>(); }