diff options
Diffstat (limited to 'src/time.c')
| -rw-r--r-- | src/time.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/time.c b/src/time.c index 16884d9d8..ed42f1f76 100644 --- a/src/time.c +++ b/src/time.c @@ -496,6 +496,10 @@ mrb_time_initialize_copy(mrb_state *mrb, mrb_value copy) if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); } + if (!DATA_PTR(copy)) { + DATA_PTR(copy) = mrb_malloc(mrb, sizeof(struct mrb_time)); + DATA_TYPE(copy) = &mrb_time_type; + } memcpy(DATA_PTR(copy), DATA_PTR(src), sizeof(struct mrb_time)); return copy; } |
