Module: HasType

Included in:
ArrayType, DefinedType, PtrType
Defined in:
lib/tecsgen/core/types.rb

Overview

HasType: @type を内部に持つ型のためのモジュール

@b_cloned::Bool  : true if @type is cloned

このモジュールは DefinedType, PtrType, ArrayType に include される 本当は typedef された時の Decl の要素のみ clone すればよいのだが、get_type, get_original_type で 取り出されたとき、set_scs, set_qualifier されたときに無条件で clone する (無駄にメモリを使用する) ただし、clone するのは一回のみである (二回 clone すると別の型を参照してしまう)

initialize で clone しても、共有されているときに clone されない

Instance Method Summary collapse

Instance Method Details

#clone_typeObject

HasType# @type をクローンする



55
56
57
58
59
60
# File 'lib/tecsgen/core/types.rb', line 55

def clone_type
#    if @b_cloned == false then
  @type = @type.clone
    @b_cloned = true
#    end
end

#initHasTypeObject



50
51
52
# File 'lib/tecsgen/core/types.rb', line 50

def initHasType
  @b_cloned = false
end