いつも勉強になります。

7.1-RELEASE-p6 (amd64)で、audio/xwaveを使用すると、「Bus error」などで
coreを吐きます。 (i386上では、正常に使用出来ています。)

ソースを見ていると
void set_cmenu_state(int from, int to, bool state)
{
    int i;
    if (to>CM_ALL) to=CM_ALL;
    if (from>CM_ALL) from=CM_ALL;
    for (i=from;i<=to;i++) {
        XtVaSetValues(cm_widgets[i],XtNsensitive,state,NULL);
    }
}
...
menu.h...
#define CM_ALL 7
...
menu.c...
static Widget cm_widgets[CM_ALL];

以上から、forの中を
    for (i=from;i<=to;i++) {
        if (i >= CM_ALL)
            break;
        XtVaSetValues(cm_widgets[i],XtNsensitive,state,NULL);
    }
とする事で, Bus errorは無くなりましたが、他の動作が ?です。例えば

riff.h...
typedef struct {
   long riff;
   ulong length;
   long wave;
} RiffHeader;
...
(ulong は unsigned longです)

そこは、4ビットづつのデータですので、amd64では、例えば

typedef struct {
   int riff;
   unsigned int length;
   int wave;
} RiffHeader;

とする事で、一応その動作は OKとなりました。が、では
portsで、i386と amd64で、コンパイルが出来て、正常に動作させる方法は、
あるものでしょうか?

(LONG_PTR(?) みたいなものはあるものでしょうか?)

                        / Name : Dobashi Mitsuyoshi  /
                       / Email : md...@luna.wak2.jp /

メールによる返信