Changeset 77 for NEWT0/trunk

Show
Ignore:
Timestamp:
03/24/07 09:01:46 (20 months ago)
Author:
pguyot
Message:

Fix send and send-if-defined to match the Newton's order.

Location:
NEWT0/trunk/src/newt_core
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • NEWT0/trunk/src/newt_core/NewtBC.c

    r76 r77  
    7474 
    7575#ifndef _MSC_VER 
     76 
    7677#pragma mark - 
     78 
    7779#pragma mark ローカル変数 
    7880#endif 
     81 
     82 
    7983 
    8084/* ローカル変数 */ 
     
    20842088    numArgs = NBCCountNumArgs(stree, node->op2); 
    20852089 
    2086 #ifdef FIXME_MATTHIAS 
    2087     // Newton expects the arguments to "send" in this order. 
    2088     // I have not checked if the NEWT VM "send" interprter  
    2089     // needs arguments to be swapped as well 
     2090    // There is a mistake in NewtonFormats. We push arguments in the Newton's 
     2091    // natural order. 
     2092 
     2093    // receiver の生成 
    20902094    NBCGenReceiver(stree, receiver); 
    2091     NBCGenPUSH(node->op1); 
    2092 #else 
    20932095    // message の生成 
    20942096    NBCGenPUSH(node->op1); 
    2095  
    2096     // receiver の生成 
    2097     NBCGenReceiver(stree, receiver); 
    2098 #endif 
    20992097 
    21002098    // メッセージ呼出しの生成 
     
    26682666 
    26692667#ifndef _MSC_VER 
     2668 
    26702669#pragma mark - 
     2670 
    26712671#endif 
     2672 
    26722673 
    26732674/*------------------------------------------------------------------------*/ 
  • NEWT0/trunk/src/newt_core/NewtVM.c

    r71 r77  
    4040 
    4141#ifndef _MSC_VER 
     42 
    4243#pragma mark - 
     44 
    4345#endif 
     46 
    4447 
    4548/* マクロ */ 
     
    6972 
    7073#ifndef _MSC_VER 
     74 
    7175#pragma mark - 
     76 
    7277#endif 
     78 
    7379 
    7480/* 関数プロトタイプ */ 
     
    352358 
    353359#ifndef _MSC_VER 
     360 
    354361#pragma mark - 
     362 
    355363#endif 
     364 
    356365 
    357366/*------------------------------------------------------------------------*/ 
     
    586595 
    587596#ifndef _MSC_VER 
     597 
    588598#pragma mark - 
     599 
    589600#endif 
     601 
    590602 
    591603/*------------------------------------------------------------------------*/ 
     
    632644#ifndef _MSC_VER 
    633645#pragma mark *** 呼出しスタック 
     646 
    634647#endif 
    635648/*------------------------------------------------------------------------*/ 
     
    705718 
    706719 
     720 
    707721#ifndef _MSC_VER 
    708722#pragma mark *** スタック 
     723 
    709724#endif 
     725 
    710726 
    711727/*------------------------------------------------------------------------*/ 
     
    808824 
    809825#ifndef _MSC_VER 
     826 
    810827#pragma mark *** 例外ハンドラスタック 
     828 
    811829#endif 
     830 
    812831 
    813832/*------------------------------------------------------------------------*/ 
     
    904923 
    905924#ifndef _MSC_VER 
     925 
    906926#pragma mark *** Literals 
     927 
    907928#endif 
     929 
    908930 
    909931/*------------------------------------------------------------------------*/ 
     
    929951 
    930952#ifndef _MSC_VER 
     953 
    931954#pragma mark *** Iterator 
     955 
    932956#endif 
     957 
    933958 
    934959/*------------------------------------------------------------------------*/ 
     
    10751100 
    10761101#ifndef _MSC_VER 
     1102 
    10771103#pragma mark - 
     1104 
    10781105#endif 
     1106 
    10791107 
    10801108/*------------------------------------------------------------------------*/ 
     
    18271855newtRef vm_send(int16_t b, newtErr * errP) 
    18281856{ 
     1857    // NewtonFormats say: 
    18291858    // arg1 arg2 ... argN name receiver -- result 
     1859    // But in the Newton, this is: 
     1860    // arg1 arg2 ... argN receiver name -- result 
    18301861 
    18311862    newtRefVar  receiver; 
     
    18381869        *errP = kNErrNone; 
    18391870 
     1871    name = stk_pop(); 
    18401872    receiver = stk_pop(); 
    1841     name = stk_pop(); 
     1873 
     1874    if (! NewtRefIsSymbol(name)) 
     1875    { 
     1876        NVMThrowBC(kNErrNotASymbol, name, b, true); 
     1877        return name; 
     1878    } 
    18421879 
    18431880    if (! NewtRefIsFrame(receiver)) 
    18441881    { 
    18451882        NVMThrowBC(kNErrNotAFrame, receiver, b, true); 
    1846         return name; 
    1847     } 
    1848  
    1849     if (! NewtRefIsSymbol(name)) 
    1850     { 
    1851         NVMThrowBC(kNErrNotASymbol, name, b, true); 
    18521883        return name; 
    18531884    } 
     
    19301961 
    19311962#ifndef _MSC_VER 
     1963 
    19321964#pragma mark - 
     1965 
    19331966#pragma mark *** Simple instructions 
    19341967#endif 
     1968 
     1969 
    19351970 
    19361971/*------------------------------------------------------------------------*/ 
     
    20482083 
    20492084#ifndef _MSC_VER 
     2085 
    20502086#pragma mark - 
     2087 
    20512088#pragma mark *** Primitive functions 
    20522089#endif 
     2090 
     2091 
    20532092 
    20542093/*------------------------------------------------------------------------*/ 
     
    24992538 
    25002539#ifndef _MSC_VER 
     2540 
    25012541#pragma mark - 
     2542 
    25022543#pragma mark *** Instructions 
    25032544#endif 
     2545 
     2546 
    25042547 
    25052548/*------------------------------------------------------------------------*/ 
     
    31203163 
    31213164#ifndef _MSC_VER 
     3165 
    31223166#pragma mark *** ダンプ 
     3167 
    31233168#endif 
     3169 
    31243170 
    31253171/*------------------------------------------------------------------------*/ 
     
    33643410 
    33653411#ifndef _MSC_VER 
     3412 
    33663413#pragma mark - 
     3414 
    33673415#pragma mark *** インタプリタ 
    33683416#endif 
     3417 
     3418 
    33693419 
    33703420/*------------------------------------------------------------------------*/ 
     
    38503900 
    38513901#ifndef _MSC_VER 
     3902 
    38523903#pragma mark - 
     3904 
    38533905#endif 
     3906 
    38543907 
    38553908/*------------------------------------------------------------------------*/