[erlang-bugs] Bug in Interoperability Tutorial

mail.wolfgang.keller <>
Mon Apr 14 12:21:58 CEST 2008


Hi,
I found a bug in the Interoperability tutorial (hosted at http://www.erlang.org/doc/tutorial/part_frame.html) which - luckily - did not take a lot of time to track for me but is probably able to confuse a lot of beginners and courses malfunctions of the test program:

Let's look at chapter 5: http://www.erlang.org/doc/tutorial/erl_interface.html

In 5.2 (short before 5.3) we find the following C code:

/* snip */
if (strncmp(ERL_ATOM_PTR(fnp), "foo", 3) == 0) {
res = foo(ERL_INT_VALUE(argp));
} else if (strncmp(ERL_ATOM_PTR(fnp), "bar", 17) == 0) {
res = bar(ERL_INT_VALUE(argp));
}
/* snap */

the string "bar" is only 3 characters long - not 17. So it must be:

} else if (strncmp(ERL_ATOM_PTR(fnp), "bar", 3) == 0) {

This bug caused - of course - some malfunctions on my tests.

Yours faithfully
Wolfgang Keller

P. S.: In chapter 7 this bug doesn't seem to exist:

/* snip */
if (strncmp(ERL_ATOM_PTR(fnp), "foo", 3) == 0) {
res = foo(ERL_INT_VALUE(argp));
} else if (strncmp(ERL_ATOM_PTR(fnp), "bar", 3) == 0) {
res = bar(ERL_INT_VALUE(argp));
}
/* snap */

_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066




More information about the erlang-bugs mailing list