Estoy escribiendo una extensión de ruby que define una clase. Si uso Data_Wrap_Struct()
para implementar mi devolución de llamada para rb_define_alloc_func()
, ¿necesito marcar y liberar manualmente las variables de instancia? ¿O todavía se maneja para mí?(U) Ruby Extensions: rb_gc_mark() y variables de instancia
6
A
Respuesta
7
Ruby's GC recogerá los objetos de Ruby a los que se hace referencia en las variables de instancia de su objeto Ruby. No tiene que, y no debe, liberar variables de instancia de Ruby usted mismo (es decir, cualquier objeto al que se acceda con rb_iv_set()
/rb_iv_get()
en su extensión).
Sin embargo, si la envuelta C struct referencias objetos de Ruby, entonces usted tiene que marcar los de la mark
devolución de llamada está de paso a Data_Wrap_Struct()
.
(Y siempre se tendrá que liberar a la estructura subyacente y hacer cualquier otra limpieza que sean necesarios, tales como archivos de cierre, tomas de corriente, etc., en su free
de devolución de llamada.)
Cuestiones relacionadas
- 1. Ruby instancia variables y métodos
- 2. Ruby: Diferencia entre Instancia y variables locales en Ruby
- 3. Variables de instancia de la clase Ruby y herencia
- 4. Uso de variables de instancia en métodos de clase - Ruby
- 5. Inicializando variables de instancia de clase en Ruby
- 6. ¿Cuándo se establecen las variables de instancia de Ruby?
- 7. ¿Ruby tiene un method_missing equivalente para variables de instancia indefinidas?
- 8. variables de instancia de clase python y variables de clase
- 9. Valores predeterminados de variables de instancia y variables locales
- 10. MSTest, MyClassInitialize y variables de instancia
- 11. Google Chrome Extensions y NPAPI
- 12. Ruby, Unicorn y variables de entorno
- 13. Variables de clase Ruby
- 14. ¿Cómo puede el attr_accessor de Ruby producir variables de clase o variables de instancia de clase en lugar de variables de instancia?
- 15. Cross Compiling Python Extensions
- 16. Enum como variables de instancia
- 17. iOS 5 variables de instancia
- 18. ¿Inicializar automáticamente variables de instancia?
- 19. copyWithZone configurando variables de instancia?
- 20. Demora y deduplicación con Reactive Extensions (Rx)
- 21. Inicialización de variable de instancia en Ruby
- 22. Variables de instancia de Java contra variables locales
- 23. TortoiseGit vs Git Extensions
- 24. Variables de instancia vs. variables de clase en Python
- 25. Objetivo C ARC y variables de instancia iOS SDK
- 26. iOS5: Confusión con loadview e init y variables de instancia
- 27. Asignación compuesta a la clase Python y variables de instancia
- 28. Carriles - Variables locales frente a variables de instancia
- 29. variables estáticas en ruby
- 30. ¿Las variables de instancia son las nuevas variables globales?