Sto scrivendo un'estensione ruby che definisce una classe. Se utilizzo Data_Wrap_Struct()
per implementare la mia callback per rb_define_alloc_func()
, è necessario contrassegnare e liberare manualmente le variabili di istanza? O è ancora gestito per me?(U) Ruby Extensions: rb_gc_mark() e variabili di istanza
6
A
risposta
7
GC di Ruby raccoglierà qualsiasi oggetto Ruby a cui si fa riferimento nelle variabili di istanza dell'oggetto Ruby. Non devi e non devi liberare le variabili di istanza di Ruby (ad esempio, qualsiasi oggetto a cui si accede con rb_iv_set()
/rb_iv_get()
nell'estensione).
Tuttavia, se il C struct avvolto riferimenti rubino oggetti, allora dovrete segnare quelli del mark
richiamata si sta passando a Data_Wrap_Struct()
.
(E si avrà sempre a liberare la struct sottostante, e fare qualsiasi altra clean-up che può essere necessario, come la chiusura dei file, prese, ecc nel vostro free
callback.)
Problemi correlati
- 1. Ruby: Minitest, unità di test e variabili di istanza
- 2. Ottieni attr_accessor/variabili di istanza in ruby
- 3. Rubino: Differenza tra istanza e variabili locali in Ruby
- 4. Garbage Collection di variabili di istanza di classe in Ruby
- 5. Metodi di istanza e sicurezza thread delle variabili di istanza
- 6. Inizializzazione delle variabili di istanza della classe in Ruby
- 7. Variabili di istanza della classe Ruby ed ereditarietà
- 8. Valori predefiniti di variabili di istanza e variabili locali
- 9. variabili di istanza della classe python e variabili di classe
- 10. Variabili di istanza e classe Singleton
- 11. Rails - Variabili locali contro variabili di istanza
- 12. Variabili di istanza Java vs variabili locali
- 13. Collegamento per assegnare variabili di istanza
- 14. Variabili di istanza nel layout
- 15. iOS5: Confusione con loadview e init e variabili di istanza
- 16. Variabili di istanza rispetto a variabili di classe in Python
- 17. Variabili di istanza di override rapide
- 18. Le migliori variabili di istanza di Scala
- 19. Google Chrome Extensions e NPAPI
- 20. Ordinamento di inizializzatori variabili di istanza
- 21. Come può attr_accessor di Ruby produrre variabili di classe o istanze di classe invece di variabili di istanza?
- 22. Variabili di istanza di iOS 5
- 23. Assegnazione composta alla classe Python e variabili di istanza
- 24. Python: comprensione delle variabili di classe e istanza
- 25. Passare le variabili di istanza ai metodi di istanza e accedervi direttamente?
- 26. Le variabili di istanza sono le nuove variabili globali?
- 27. Puntatori variabili di istanza Objective-C
- 28. Estensione tipo categoria per variabili di istanza
- 29. Rails attivi variabili di istanza Record
- 30. Objective-C variabili di istanza nascosto