Class: RubyProf::Allocation

Inherits:
Data
  • Object
show all
Defined in:
ext/ruby_prof/rp_allocation.c

Instance Method Summary collapse

Instance Method Details

#_dump_dataObject

:nodoc:



229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# File 'ext/ruby_prof/rp_allocation.c', line 229

static VALUE
prof_allocation_dump(VALUE self)
{
    prof_allocation_t* allocation = DATA_PTR(self);

    VALUE result = rb_hash_new();

    rb_hash_aset(result, ID2SYM(rb_intern("key")), INT2FIX(allocation->key));
    rb_hash_aset(result, ID2SYM(rb_intern("klass_name")), prof_allocation_klass_name(self));
    rb_hash_aset(result, ID2SYM(rb_intern("klass_flags")), INT2FIX(allocation->klass_flags));
    rb_hash_aset(result, ID2SYM(rb_intern("source_file")), allocation->source_file);
    rb_hash_aset(result, ID2SYM(rb_intern("source_line")), INT2FIX(allocation->source_line));
    rb_hash_aset(result, ID2SYM(rb_intern("count")), INT2FIX(allocation->count));
    rb_hash_aset(result, ID2SYM(rb_intern("memory")), LONG2FIX(allocation->memory));

    return result;
}

#_load_data(data) ⇒ Object

:nodoc:



248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'ext/ruby_prof/rp_allocation.c', line 248

static VALUE
prof_allocation_load(VALUE self, VALUE data)
{
    prof_allocation_t* allocation = DATA_PTR(self);
    allocation->object = self;

    allocation->key = FIX2LONG(rb_hash_aref(data, ID2SYM(rb_intern("key"))));
    allocation->klass_name = rb_hash_aref(data, ID2SYM(rb_intern("klass_name")));
    allocation->klass_flags = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("klass_flags"))));
    allocation->source_file = rb_hash_aref(data, ID2SYM(rb_intern("source_file")));
    allocation->source_line = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("source_line"))));
    allocation->count = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("count"))));
    allocation->memory = FIX2LONG(rb_hash_aref(data, ID2SYM(rb_intern("memory"))));

    return data;
}

#countNumeric

Returns the number of times this class has been allocated.

Returns:

  • (Numeric)


210
211
212
213
214
215
# File 'ext/ruby_prof/rp_allocation.c', line 210

static VALUE
prof_allocation_count(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->count);
}

#klass_flagsInteger

Returns the klass flags

Returns:

  • (Integer)


177
178
179
180
181
182
# File 'ext/ruby_prof/rp_allocation.c', line 177

static VALUE
prof_allocation_klass_flags(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->klass_flags);
}

#klassClass

Returns the type of Class being allocated.

Returns:

  • (Class)


161
162
163
164
165
166
167
168
169
170
# File 'ext/ruby_prof/rp_allocation.c', line 161

static VALUE
prof_allocation_klass_name(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);

    if (allocation->klass_name == Qnil)
        allocation->klass_name = resolve_klass_name(allocation->klass, &allocation->klass_flags);

    return allocation->klass_name;
}

#lineNumeric

Returns the the line number where objects were allocated.

Returns:

  • (Numeric)


199
200
201
202
203
204
# File 'ext/ruby_prof/rp_allocation.c', line 199

static VALUE
prof_allocation_source_line(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->source_line);
}

#memoryNumeric

Returns the amount of memory allocated.

Returns:

  • (Numeric)


221
222
223
224
225
226
# File 'ext/ruby_prof/rp_allocation.c', line 221

static VALUE
prof_allocation_memory(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return ULL2NUM(allocation->memory);
}

#source_fileString

Returns the the line number where objects were allocated.

Returns:

  • (String)


188
189
190
191
192
193
# File 'ext/ruby_prof/rp_allocation.c', line 188

static VALUE
prof_allocation_source_file(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return allocation->source_file;
}