diff options
Diffstat (limited to 'src/decomp/context.c')
-rw-r--r-- | src/decomp/context.c | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/decomp/context.c b/src/decomp/context.c index 6905505..025c0d2 100644 --- a/src/decomp/context.c +++ b/src/decomp/context.c @@ -139,9 +139,35 @@ static void g_dec_context_finalize(GDecContext *ctx) /****************************************************************************** * * -* Paramètres : - * +* Paramètres : dest = contexte de compilation à définir. * +* src = contexte de compilation à copier. * * * -* Description : Met en place un nouveau contexte de décompilation. * +* Description : Duplique partiellement un contexte de compilation. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void _g_dec_context_dup(GDecContext *dest, GDecContext *src) +{ + if (src->routine != NULL) + g_object_ref(G_OBJECT(src->routine)); + if (src->format != NULL) + g_object_ref(G_OBJECT(src->format)); + + dest->routine = src->routine; + dest->format = src->format; + +} + + +/****************************************************************************** +* * +* Paramètres : orig = contexte de compilation à copier. * +* * +* Description : Duplique un contexte de compilation. * * * * Retour : Contexte de décompilation prêt à emploi. * * * @@ -149,11 +175,11 @@ static void g_dec_context_finalize(GDecContext *ctx) * * ******************************************************************************/ -GDecContext *g_dec_context_new(void) +GDecContext *g_dec_context_dup(GDecContext *orig) { GDecContext *result; /* Instance à retourner */ - result = g_object_new(G_TYPE_DEC_CONTEXT, NULL); + result = orig->dup(orig); return result; |