this.jumpType = jumpType;
}
+ /* obsolete
internal override int Length {
get {
int len = Encode7EUnsigned(jumpType, null);
return len;
}
}
+ */
+
+ internal override int GetLength(bool oneByteCode)
+ {
+ int len = oneByteCode ? 1 : Encode7EUnsigned(jumpType, null);
+ int joff = JumpOff;
+ if (joff == Int32.MinValue) {
+ len ++;
+ } else {
+ len += Encode7ESigned(joff, null);
+ }
+ return len;
+ }
internal override void SetJumpTarget(CodeElement target)
{
}
}
- internal override int Encode(BlobWriter bw)
+ internal override int Encode(BlobWriter bw, bool oneByteCode)
{
if (bw == null) {
- return Length;
+ return GetLength(oneByteCode);
+ }
+ int len;
+ if (oneByteCode) {
+ len = EncodeOneByte(jumpType, bw);
+ } else {
+ len = Encode7EUnsigned(jumpType, bw);
}
- int len = Encode7EUnsigned(jumpType, bw);
int joff = JumpOff;
if (joff == Int32.MinValue) {
throw new Exception("Unresolved addresses");