Skip to content

Commit 7921949

Browse files
committed
correct value returning in goLPCBYTE_RECEIVER to fix sciter-sdk#21
1 parent 255bd49 commit 7921949

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

examples/textHtml/textHtml.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package main
22

33
import (
4+
"log"
5+
46
"github.com/oskca/sciter"
57
"github.com/oskca/sciter/window"
6-
"log"
78
)
89

910
const (
@@ -48,4 +49,9 @@ func main() {
4849
log.Fatal(err)
4950
}
5051
log.Println("text:", text)
52+
text, err = root.Html(false)
53+
if err != nil {
54+
log.Fatal(err)
55+
}
56+
log.Println("html:", text)
5157
}

sciter.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -626,12 +626,15 @@ func (e *Element) ParentElement() (*Element, error) {
626626

627627
//export goLPCBYTE_RECEIVER
628628
func goLPCBYTE_RECEIVER(bs *byte, n uint, param unsafe.Pointer) int {
629-
r := *(*[]byte)(param)
629+
var r []byte
630630
p := uintptr(unsafe.Pointer(bs))
631+
println("goLPCBYTE_RECEIVER:", n)
631632
for i := 0; i < int(n); i++ {
632633
u := *(*byte)(unsafe.Pointer(p + uintptr(i)))
633634
r = append(r, u)
634635
}
636+
println("in:", string(r))
637+
*(*[]byte)(param) = r
635638
return 0
636639
}
637640

@@ -668,15 +671,16 @@ var (
668671
// \param[in] rcv_param \b parameter that passed to rcv as it is.
669672
// \return \b #SCDOM_RESULT SCAPI
670673
func (e *Element) Html(outer bool) (string, error) {
671-
var str string
674+
var bs []byte
672675
// args
673676
couter := C.BOOL(C.FALSE)
674677
if outer {
675678
couter = C.BOOL(C.TRUE)
676679
}
677-
cparam := C.LPVOID(unsafe.Pointer(&str))
680+
cparam := C.LPVOID(unsafe.Pointer(&bs))
678681
// cgo call
679682
r := C.SciterGetElementHtmlCB(e.handle, couter, lpcbyte_receiver, cparam)
683+
str := string(bs)
680684
return str, wrapDomResult(r, "SciterGetElementHtmlCB")
681685
}
682686

0 commit comments

Comments
 (0)