Current Path: > > opt > > alt > ruby34 > include > ruby > internal
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
arithmetic | Directory | - | - | |
attr | Directory | - | - | |
compiler_is | Directory | - | - | |
core | Directory | - | - | |
encoding | Directory | - | - | |
has | Directory | - | - | |
intern | Directory | - | - | |
abi.h | File | 1586 bytes | May 29 2025 13:39:39. | |
anyargs.h | File | 38876 bytes | May 29 2025 13:39:38. | |
arithmetic.h | File | 2117 bytes | May 29 2025 13:39:39. | |
assume.h | File | 3245 bytes | May 29 2025 13:39:39. | |
cast.h | File | 2330 bytes | May 29 2025 13:39:39. | |
compiler_is.h | File | 2105 bytes | May 29 2025 13:39:39. | |
compiler_since.h | File | 2783 bytes | May 29 2025 13:39:39. | |
config.h | File | 4889 bytes | May 29 2025 13:39:39. | |
constant_p.h | File | 1895 bytes | May 29 2025 13:39:39. | |
core.h | File | 1874 bytes | May 29 2025 13:39:39. | |
ctype.h | File | 23097 bytes | May 29 2025 13:39:39. | |
dllexport.h | File | 3118 bytes | May 29 2025 13:39:39. | |
dosish.h | File | 3240 bytes | May 29 2025 13:39:39. | |
error.h | File | 21425 bytes | May 29 2025 13:39:39. | |
eval.h | File | 18637 bytes | May 29 2025 13:39:39. | |
event.h | File | 6358 bytes | May 29 2025 13:39:38. | |
fl_type.h | File | 33667 bytes | May 29 2025 13:39:39. | |
gc.h | File | 28741 bytes | May 29 2025 13:39:38. | |
glob.h | File | 5102 bytes | May 29 2025 13:39:39. | |
globals.h | File | 10008 bytes | May 29 2025 13:39:39. | |
interpreter.h | File | 9673 bytes | May 29 2025 13:39:39. | |
iterator.h | File | 18627 bytes | May 29 2025 13:39:39. | |
memory.h | File | 23916 bytes | May 29 2025 13:39:38. | |
method.h | File | 7249 bytes | May 29 2025 13:39:38. | |
module.h | File | 7285 bytes | May 29 2025 13:39:38. | |
newobj.h | File | 6234 bytes | May 29 2025 13:39:39. | |
scan_args.h | File | 18923 bytes | May 29 2025 13:39:39. | |
special_consts.h | File | 12239 bytes | May 29 2025 13:39:38. | |
static_assert.h | File | 3287 bytes | May 29 2025 13:39:39. | |
stdalign.h | File | 4693 bytes | May 29 2025 13:39:39. | |
stdbool.h | File | 1966 bytes | May 29 2025 13:39:39. | |
stdckdint.h | File | 2741 bytes | May 29 2025 13:39:39. | |
symbol.h | File | 13599 bytes | May 29 2025 13:39:39. | |
value.h | File | 4360 bytes | May 29 2025 13:39:39. | |
value_type.h | File | 14554 bytes | May 29 2025 13:39:39. | |
variable.h | File | 12091 bytes | May 29 2025 13:39:39. | |
warning_push.h | File | 5028 bytes | May 29 2025 13:39:39. | |
xmalloc.h | File | 14519 bytes | May 29 2025 13:39:39. |
#ifndef RBIMPL_NEWOBJ_H /*-*-C++-*-vi:se ft=cpp:*/ #define RBIMPL_NEWOBJ_H /** * @file * @author Ruby developers <ruby-core@ruby-lang.org> * @copyright This file is a part of the programming language Ruby. * Permission is hereby granted, to either redistribute and/or * modify this file, provided that the conditions mentioned in the * file COPYING are met. Consult the file for details. * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are * implementation details. Don't take them as canon. They could * rapidly appear then vanish. The name (path) of this header file * is also an implementation detail. Do not expect it to persist * at the place it is now. Developers are free to move it anywhere * anytime at will. * @note To ruby-core: remember that this header can be possibly * recursively included from extension libraries written in C++. * Do not expect for instance `__VA_ARGS__` is always available. * We assume C99 for ruby itself but we don't assume languages of * extension libraries. They could be written in C++98. * @brief Defines #NEWOBJ. */ #include "ruby/internal/attr/deprecated.h" #include "ruby/internal/cast.h" #include "ruby/internal/core/rbasic.h" #include "ruby/internal/dllexport.h" #include "ruby/internal/fl_type.h" #include "ruby/internal/special_consts.h" #include "ruby/internal/value.h" #include "ruby/assert.h" #define OBJSETUP rb_obj_setup /**< @old{rb_obj_setup} */ #define CLONESETUP rb_clone_setup /**< @old{rb_clone_setup} */ #define DUPSETUP rb_dup_setup /**< @old{rb_dup_setup} */ RBIMPL_SYMBOL_EXPORT_BEGIN() /** * Fills common fields in the object. * * @param[in,out] obj A Ruby object to be set up. * @param[in] klass `obj` will belong to this class. * @param[in] type One of ::ruby_value_type. * @return The passed object. * * @internal * * Historically, authors of Ruby has described the `type` argument as "one of * ::ruby_value_type". In reality it accepts either ::ruby_value_type, * ::ruby_fl_type, or any combinations of the two. For instance * `RUBY_T_STRING | RUBY_FL_FREEZE` is a valid value that this function takes, * and means this is a frozen string. * * 3rd party extension libraries rarely need to allocate Strings this way. * They normally only concern ::RUBY_T_DATA. This argument is mainly used for * specifying flags, @shyouhei suspects. */ VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type); /** * Queries the class of an object. This is not always identical to * `RBASIC_CLASS(obj)`. It searches for the nearest ancestor skipping * singleton classes or included modules. * * @param[in] obj Object in question. * @return The object's class, in a normal sense. */ VALUE rb_obj_class(VALUE obj); /** * Clones a singleton class. An object can have its own singleton class. OK. * Then what happens when a program clones such object? The singleton class * that is attached to the source object must also be cloned. Otherwise a * singleton object gets shared with two objects, which breaks "singleton"-ness * of such class. * * This is basically an implementation detail of rb_clone_setup(). People * need not be aware of this working behind-the-scene. * * @param[in] obj The object that has its own singleton class. * @return Cloned singleton class. */ VALUE rb_singleton_class_clone(VALUE obj); /** * Attaches a singleton class to its corresponding object. * * This is basically an implementation detail of rb_clone_setup(). People * need not be aware of this working behind-the-scene. * * @param[in] klass The singleton class. * @param[out] obj The object to attach a class. * @pre The passed two objects must agree with each other that `klass` * becomes a singleton class of `obj`. * @post `klass` becomes the singleton class of `obj`. */ void rb_singleton_class_attached(VALUE klass, VALUE obj); /** * Copies the list of instance variables. 3rd parties need not know, but there * are several ways to store an object's instance variables, depending on its * internal structure. This function makes sense when either of the passed * objects are using so-called "generic" backend storage. This distinction is * purely an implementation detail of rb_clone_setup(). People need not be * aware of this working behind-the-scenes. * * @param[out] clone The destination object. * @param[in] obj The source object. */ void rb_copy_generic_ivar(VALUE clone, VALUE obj); RBIMPL_SYMBOL_EXPORT_END() RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#clone works.")) /** * @deprecated Not sure exactly when but at some time, the implementation of * `Object#clone` stopped using this function. It remained * untouched for a while, and then @shyouhei realised that they * are no longer doing the same thing. It seems nobody seriously * uses this function any longer. Let's just abandon it. * * @param[out] clone The destination object. * @param[in] obj The source object. */ static inline void rb_clone_setup(VALUE clone, VALUE obj) { (void)clone; (void)obj; return; } RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#dup works.")) /** * @deprecated Not sure exactly when but at some time, the implementation of * `Object#dup` stopped using this function. It remained * untouched for a while, and then @shyouhei realised that they * are no longer the same thing. It seems nobody seriously uses * this function any longer. Let's just abandon it. * * @param[out] dup The destination object. * @param[in] obj The source object. */ static inline void rb_dup_setup(VALUE dup, VALUE obj) { (void)dup; (void)obj; return; } #endif /* RBIMPL_NEWOBJ_H */
SILENT KILLER Tool