IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Clonage de méthode qui déconne..


Sujet :

Dotnet

  1. #1
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut Clonage de méthode qui déconne..
    Je clone des Types via System.Reflection.Emit.
    Cela marche très bien pour à peu près n'importe quoi, sauf, apparemment, pour les méthodes qui retournent des valeurs.
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class TestClass
    {
    	public string Text() { return "texte"; }
    }
    Voici le code MSIL original :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    0000 : nop
    0001 : ldstr "texte"
    0006 : stloc.0
    0007 : br.s 0009
    0009 : ldloc.0
    000a : ret
    Et voici le code généré...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0000 : nop
    0001 : ldstr "texte"
    0006 : stloc.0
    0007 : br.s 0012
    0009 : nop
    000a : nop
    000b : nop
    000c : ldloc.0
    000d : ret
    A noter que je copie instruction par instruction, et qu'à priori, les instructions copiées sont correctes (j'ai vérifié avec une exécution pas-à-pas du programme de copie).

    Comment expliquer ces 3 nop supplémentaires et le décalage de 9 octets dans l'opérande du br.s ?

  2. #2
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    C'est bon, c'était juste un souci avec le calcul de l'opérande de l'opcode br.s dans le Reader de méthode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] Une méthode qui ne marche pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/05/2006, 17h10
  2. [Access] Champ Date/Heure qui déconne
    Par portu dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/05/2006, 18h42
  3. Réponses: 12
    Dernier message: 23/03/2006, 15h13
  4. glDisable(GL_LIGHTING) pour un plan 2D qui déconne
    Par Coelacanthe dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/12/2005, 23h03
  5. une méthode qui écrit dans la sortie html ?
    Par iubito dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/12/2003, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo