Skip to content

Commit 2e3828f

Browse files
committed
corrections
1 parent 387ff70 commit 2e3828f

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/core.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ SEXP rnng_get_opt(SEXP object, SEXP opt) {
10351035
for (;;) {
10361036
xc = nng_listener_get_string(*list, op, &optval.str);
10371037
if (xc == 0) { typ = 1; break; }
1038-
xc = nng_listener_get_ms(*list, op, &optval.i);
1038+
xc = nng_listener_get_ms(*list, op, &optval.d);
10391039
if (xc == 0) { typ = 2; break; }
10401040
xc = nng_listener_get_size(*list, op, &optval.s);
10411041
if (xc == 0) { typ = 3; break; }
@@ -1053,7 +1053,7 @@ SEXP rnng_get_opt(SEXP object, SEXP opt) {
10531053
for (;;) {
10541054
xc = nng_dialer_get_string(*dial, op, &optval.str);
10551055
if (xc == 0) { typ = 1; break; }
1056-
xc = nng_dialer_get_ms(*dial, op, &optval.i);
1056+
xc = nng_dialer_get_ms(*dial, op, &optval.d);
10571057
if (xc == 0) { typ = 2; break; }
10581058
xc = nng_dialer_get_size(*dial, op, &optval.s);
10591059
if (xc == 0) { typ = 3; break; }
@@ -1074,13 +1074,22 @@ SEXP rnng_get_opt(SEXP object, SEXP opt) {
10741074

10751075
switch (typ) {
10761076
case 1:
1077-
out = Rf_mkString(*(char **) &optval);
1077+
out = Rf_mkString(optval.str);
10781078
break;
1079-
case 6:
1080-
out = Rf_ScalarReal(*(double *) &optval);
1079+
case 2:
1080+
out = Rf_ScalarInteger((int) optval.d);
1081+
break;
1082+
case 3:
1083+
out = Rf_ScalarInteger((int) optval.s);
1084+
break;
1085+
case 4:
1086+
out = Rf_ScalarInteger(optval.i);
1087+
break;
1088+
case 5:
1089+
out = Rf_ScalarInteger((int) optval.b);
10811090
break;
10821091
default:
1083-
out = Rf_ScalarInteger(*(int *) &optval);
1092+
out = Rf_ScalarReal((double) optval.u);
10841093
}
10851094

10861095
return out;

0 commit comments

Comments
 (0)