Skip to content

Commit 703c46f

Browse files
committed
Allow compile on v8
No tag, just C preprocessor magic
1 parent ccfa57e commit 703c46f

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

ibmmq/mqiMQCNO.go

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,29 @@ package ibmmq
2626
#include <cmqc.h>
2727
#include <cmqxc.h>
2828
29+
void freeCCDTUrl(MQCNO *mqcno) {
30+
#if defined(MQCNO_VERSION_6) && MQCNO_CURRENT_VERSION == MQCNO_VERSION_6
31+
if (mqcno.CCDTUrlPtr != NULL) {
32+
free(mqcno.CCDTUrlPtr);
33+
}
34+
#endif
35+
}
36+
37+
void setCCDTUrl(MQCNO *mqcno, PMQCHAR url, MQLONG length) {
38+
#if defined(MQCNO_VERSION_6) && MQCNO_CURRENT_VERSION == MQCNO_VERSION_6
39+
mqcno.CCDTUrlOffset = 0;
40+
mqcno.CCDTUrlPtr = NULL;
41+
mqcno.CCDTUrlLength = length;
42+
if (url != NULL) {
43+
mqcno.CCDTUrlPtr = PMQCHAR(url);
44+
}
45+
#else
46+
if (url != NULL) {
47+
free(url);
48+
}
49+
#endif
50+
}
51+
2952
*/
3053
import "C"
3154
import "unsafe"
@@ -152,14 +175,7 @@ func copyCNOtoC(mqcno *C.MQCNO, gocno *MQCNO) {
152175
mqcno.SecurityParmsPtr = nil
153176
}
154177

155-
mqcno.CCDTUrlOffset = 0
156-
if len(gocno.CCDTUrl) != 0 {
157-
mqcno.CCDTUrlPtr = C.PMQCHAR(unsafe.Pointer(C.CString(gocno.CCDTUrl)))
158-
mqcno.CCDTUrlLength = C.MQLONG(len(gocno.CCDTUrl))
159-
} else {
160-
mqcno.CCDTUrlPtr = nil
161-
mqcno.CCDTUrlLength = 0
162-
}
178+
C.setCCDTUrl(mqcno, C.PMQCHAR(C.CString(gocno.CCDTUrl)), C.MQLONG(len(gocno.CCDTUrl)))
163179
return
164180
}
165181

@@ -187,8 +203,6 @@ func copyCNOfromC(mqcno *C.MQCNO, gocno *MQCNO) {
187203
C.free(unsafe.Pointer(mqcno.SSLConfigPtr))
188204
}
189205

190-
if mqcno.CCDTUrlPtr != nil {
191-
C.free(unsafe.Pointer(mqcno.CCDTUrlPtr))
192-
}
206+
C.freeCCDTUrl(mqcno)
193207
return
194208
}

0 commit comments

Comments
 (0)