Class: PEdump::CLR::PropertySig

Inherits:
Signature show all
Defined in:
lib/pedump/clr/signature.rb

Overview

Constant Summary

Constants inherited from Signature

Signature::DEFAULT, Signature::ELEMENT_TYPE_ARRAY, Signature::ELEMENT_TYPE_BOOLEAN, Signature::ELEMENT_TYPE_BYREF, Signature::ELEMENT_TYPE_CHAR, Signature::ELEMENT_TYPE_CLASS, Signature::ELEMENT_TYPE_CMOD_OPT, Signature::ELEMENT_TYPE_CMOD_REQD, Signature::ELEMENT_TYPE_END, Signature::ELEMENT_TYPE_FNPTR, Signature::ELEMENT_TYPE_GENERICINST, Signature::ELEMENT_TYPE_I, Signature::ELEMENT_TYPE_I1, Signature::ELEMENT_TYPE_I2, Signature::ELEMENT_TYPE_I4, Signature::ELEMENT_TYPE_I8, Signature::ELEMENT_TYPE_INTERNAL, Signature::ELEMENT_TYPE_MVAR, Signature::ELEMENT_TYPE_OBJECT, Signature::ELEMENT_TYPE_PTR, Signature::ELEMENT_TYPE_R4, Signature::ELEMENT_TYPE_R8, Signature::ELEMENT_TYPE_STRING, Signature::ELEMENT_TYPE_SZARRAY, Signature::ELEMENT_TYPE_TYPEDBYREF, Signature::ELEMENT_TYPE_U, Signature::ELEMENT_TYPE_U1, Signature::ELEMENT_TYPE_U2, Signature::ELEMENT_TYPE_U4, Signature::ELEMENT_TYPE_U8, Signature::ELEMENT_TYPE_VALUETYPE, Signature::ELEMENT_TYPE_VAR, Signature::ELEMENT_TYPE_VOID, Signature::EXPLICITTHIS, Signature::FIELD, Signature::GENERIC, Signature::HASTHIS, Signature::PROPERTY, Signature::SENTINEL, Signature::VARARG

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Signature

#_read_CustomMod, #_read_Param, #_read_RetType, #_read_Type, #_read_TypeDefOrRefOrSpecEncoded, #_read_compressed_uint, read, #to_s

Constructor Details

#initialize(io) ⇒ PropertySig

Returns a new instance of PropertySig.



256
257
258
259
260
261
262
263
264
265
266
# File 'lib/pedump/clr/signature.rb', line 256

def initialize(io)
  sig_type = io.getbyte
  raise "unexpected sig_type #{sig_type}" if sig_type != PROPERTY && sig_type != PROPERTY|HASTHIS

  @ParamCount = _read_compressed_uint(io)
  _read_CustomMod(io) # FIXME
  @type = _read_Type(io)
  if @ParamCount < 255 # protect from malformed EXEs
    @params = @ParamCount.times.map{ _read_Param(io) }
  end
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



254
255
256
# File 'lib/pedump/clr/signature.rb', line 254

def params
  @params
end

#typeObject

Returns the value of attribute type.



254
255
256
# File 'lib/pedump/clr/signature.rb', line 254

def type
  @type
end