summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/target.c20
-rw-r--r--src/arch/target.h2
2 files changed, 3 insertions, 19 deletions
diff --git a/src/arch/target.c b/src/arch/target.c
index 4e731ec..bf4da3a 100644
--- a/src/arch/target.c
+++ b/src/arch/target.c
@@ -307,7 +307,7 @@ virt_t g_target_operand_get_addr(const GTargetOperand *operand)
* *
******************************************************************************/
-bool g_target_operand_resolve(GTargetOperand *operand, const GBinFormat *format, bool strict)
+bool g_target_operand_resolve(GTargetOperand *operand, GBinFormat *format, bool strict)
{
bool result; /* Bilan à retourner */
vmpa2t addr; /* Adresse de recherche */
@@ -320,23 +320,7 @@ bool g_target_operand_resolve(GTargetOperand *operand, const GBinFormat *format,
init_vmpa(&addr, VMPA_NO_PHYSICAL, operand->addr);
- result = g_binary_format_resolve_symbol(format, &addr, &operand->symbol, &operand->diff);
-
- /**
- * En cas de succès, le compteur de références du symbole trouvé a été incrémenté.
- */
-
- if (strict)
- result &= (operand->diff == 0);
-
- if (!result && operand->symbol != NULL)
- {
- g_object_unref(G_OBJECT(operand->symbol));
-
- operand->symbol = NULL;
- operand->diff = 0;
-
- }
+ result = g_binary_format_resolve_symbol(format, &addr, strict, &operand->symbol, &operand->diff);
return result;
diff --git a/src/arch/target.h b/src/arch/target.h
index a284c09..9031ddc 100644
--- a/src/arch/target.h
+++ b/src/arch/target.h
@@ -64,7 +64,7 @@ MemoryDataSize g_target_operand_get_size(const GTargetOperand *);
virt_t g_target_operand_get_addr(const GTargetOperand *);
/* Tente une résolution de symbole. */
-bool g_target_operand_resolve(GTargetOperand *, const GBinFormat *, bool);
+bool g_target_operand_resolve(GTargetOperand *, GBinFormat *, bool);
/* Fournit les indications concernant le symbole associé. */
GBinSymbol *g_target_operand_get_symbol(const GTargetOperand *, phys_t *);