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
-
#clone_type ⇒ Object
HasType# @type をクローンする.
- #initHasType ⇒ Object
Instance Method Details
#clone_type ⇒ Object
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 |
#initHasType ⇒ Object
50 51 52 |
# File 'lib/tecsgen/core/types.rb', line 50 def initHasType @b_cloned = false end |