diff --git a/rtmp/parseurl.go b/rtmp/parseurl.go index fef192aa..7af55ebb 100644 --- a/rtmp/parseurl.go +++ b/rtmp/parseurl.go @@ -120,7 +120,7 @@ func C_RTMP_ParseURL(url *byte, protocol *int32, host *C_AVal, port *uint32, if hostlen < 256 { host.av_val = (*byte)(unsafe.Pointer(p)) - host.av_len = int32(hostlen) + host.av_len = hostlen // TODO: use new logger with this //RTMP_Log(RTMP_LOGDEBUG, "Parsed host : %.*s", hostlen, host.av_val); } else { @@ -204,7 +204,7 @@ func C_RTMP_ParseURL(url *byte, protocol *int32, host *C_AVal, port *uint32, } app.av_val = (*byte)(unsafe.Pointer(p)) - app.av_len = int32(applen) + app.av_len = applen // TODO: use new logging here // RTMP_Log(RTMP_LOGDEBUG, "Parsed app : %.*s", applen, p); @@ -240,7 +240,7 @@ func C_RTMP_ParsePlaypath(in, out *C_AVal) { ppstart := (*byte)(unsafe.Pointer(playpath)) var streamname, destptr, p *byte - pplen := int32(in.av_len) + pplen := in.av_len out.av_val = nil out.av_len = 0 @@ -248,7 +248,7 @@ func C_RTMP_ParsePlaypath(in, out *C_AVal) { temp = strstr((*byte)(unsafe.Pointer(ppstart)), goStrToCStr("slist=")) if *ppstart == '?' && temp != nil { ppstart = (*byte)(incBytePtr(unsafe.Pointer(temp), 6)) - pplen = int32(strlen(ppstart)) + pplen = strlen(ppstart) temp = strchr(ppstart, '&') @@ -305,7 +305,7 @@ func C_RTMP_ParsePlaypath(in, out *C_AVal) { } } - p = (*byte)(ppstart) + p = ppstart for pplen > 0 { if subExt != 0 && p == ext { p = (*byte)(incBytePtr(unsafe.Pointer(p), 4)) diff --git a/rtmp/rtmp.go b/rtmp/rtmp.go index c1a22920..bf373377 100644 --- a/rtmp/rtmp.go +++ b/rtmp/rtmp.go @@ -275,14 +275,14 @@ func C_SocksSetup(r *C_RTMP, sockshost *C_AVal) { hostname := strdup((*byte)(unsafe.Pointer(sockshost.av_val))) if unsafe.Pointer(socksport) != nil { - (*[_Gi]byte)(unsafe.Pointer(hostname))[int(uintptr(decBytePtr(unsafe.Pointer(socksport), - int(uintptr(unsafe.Pointer(sockshost.av_val))))))] = '\000' + (*[_Gi]byte)(unsafe.Pointer(hostname))[uintptr(decBytePtr(unsafe.Pointer(socksport), + int(uintptr(unsafe.Pointer(sockshost.av_val)))))] = '\000' r.Link.sockshost.av_val = (*byte)(unsafe.Pointer(hostname)) r.Link.sockshost.av_len = int32(strlen(hostname)) value, err := strconv.Atoi(string((*[_Gi]byte)(unsafe.Pointer(uintptr( - unsafe.Pointer(socksport)) + uintptr(1)))[:int(strlen((*byte)(unsafe.Pointer( - uintptr(unsafe.Pointer(socksport))+uintptr(1)))))+1])) + unsafe.Pointer(socksport)) + uintptr(1)))[:strlen((*byte)(unsafe.Pointer( + uintptr(unsafe.Pointer(socksport))+uintptr(1))))+1])) if err != nil { log.Println("C_SocksSetup: bad string conversion!") } @@ -336,9 +336,9 @@ func C_RTMP_SetupURL(r *C_RTMP, u string) int32 { int32(len("rtmpte://:65535/\x00")) r.Link.tcUrl.av_val = (*byte)(malloc(uintptr(uintptr(length)))) - hostname := string((*[_Gi]byte)(unsafe.Pointer(r.Link.hostname.av_val))[:int(r.Link.hostname.av_len)]) + hostname := string((*[_Gi]byte)(unsafe.Pointer(r.Link.hostname.av_val))[:r.Link.hostname.av_len]) - app := string((*[_Gi]byte)(unsafe.Pointer(r.Link.app.av_val))[:int(r.Link.app.av_len)]) + app := string((*[_Gi]byte)(unsafe.Pointer(r.Link.app.av_val))[:r.Link.app.av_len]) fString := fmt.Sprintf("%v://%v:%v/%v", RTMPProtocolStringsLower[r.Link.protocol], hostname, r.Link.port, app) @@ -1187,7 +1187,7 @@ func C_AV_queue(vals **C_RTMP_METHOD, num *int32, av *C_AVal, txn int32) { tmp := malloc(uintptr(av.av_len + 1)) //tmp := allocate(uintptr(av.av_len + 1)) memmove(tmp, unsafe.Pointer(av.av_val), uintptr(av.av_len)) - (*[_Gi]byte)(tmp)[int(av.av_len)] = '\000' + (*[_Gi]byte)(tmp)[av.av_len] = '\000' (*(*C_RTMP_METHOD)(incPtr(unsafe.Pointer(*vals), int(*num), int(unsafe.Sizeof(*(*vals)))))).num = int32(txn) @@ -1879,7 +1879,7 @@ func C_RTMP_SendPacket(r *C_RTMP, packet *C_RTMPPacket, queue int) int { if tbuf != nil { //memmove(toff, header, uintptr(nChunkSize + hSize)) - copy((*[_Gi]byte)(toff)[:int(nChunkSize+hSize)], (*[_Gi]byte)(header)[:int(nChunkSize+hSize)]) + copy((*[_Gi]byte)(toff)[:nChunkSize+hSize], (*[_Gi]byte)(header)[:nChunkSize+hSize]) toff = incBytePtr(toff, nChunkSize+hSize) } else { // TODO: port this @@ -1912,7 +1912,7 @@ func C_RTMP_SendPacket(r *C_RTMP, packet *C_RTMPPacket, queue int) int { if cSize != 0 { tmp := int(packet.m_nChannel) - 64 - (*[_Gi]byte)(header)[1] = byte(tmp & 0xff) + (*[_Gi]byte)(header)[1] = byte(tmp) if cSize == 2 { (*[_Gi]byte)(header)[2] = byte(tmp >> 8) @@ -2219,7 +2219,7 @@ func realloc(ptr unsafe.Pointer, newSize uint32) unsafe.Pointer { func memmove(to, from unsafe.Pointer, n uintptr) { if to != nil && from != nil && n != 0 { - copy((*[_Gi]byte)(to)[:int(n)], (*[_Gi]byte)(from)[:int(n)]) + copy((*[_Gi]byte)(to)[:n], (*[_Gi]byte)(from)[:n]) } } @@ -2239,9 +2239,9 @@ func memcmp(a, b unsafe.Pointer, size int) int { return 0 } -func memset(ptr *byte, val int, num int) { +func memset(ptr *byte, val byte, num int) { for i := 0; i < num; i++ { - (*[_Gi]byte)(unsafe.Pointer(ptr))[int(i)] = byte(val) + (*[_Gi]byte)(unsafe.Pointer(ptr))[i] = val } } @@ -2268,14 +2268,14 @@ func goStrToCStr(str string) *byte { // TODO: need a test in rtmp_test.go func cStrToGoStr(cStr *byte) string { - return string((*[_Gi]byte)(unsafe.Pointer(cStr))[:int(strlen(cStr))]) + return string((*[_Gi]byte)(unsafe.Pointer(cStr))[:strlen(cStr)]) } // Duplicates a string given as a byte pointer func strdup(str *byte) *byte { length := strlen(str) newMem := make([]byte, length+1) - oldMem := (*[_Gi]byte)(unsafe.Pointer(str))[:int(length+1)] + oldMem := (*[_Gi]byte)(unsafe.Pointer(str))[:length+1] copy(newMem, oldMem) return &newMem[0] } @@ -2352,7 +2352,7 @@ func malloc(nOfBytes uintptr) unsafe.Pointer { func calloc(val byte, noOfBytes uintptr) unsafe.Pointer { mem := malloc(noOfBytes) - memset((*byte)(mem), int(val), int(noOfBytes)) + memset((*byte)(mem), val, int(noOfBytes)) return mem } diff --git a/rtmp/rtmp_test.go b/rtmp/rtmp_test.go index 2cc7dff6..b33417cc 100644 --- a/rtmp/rtmp_test.go +++ b/rtmp/rtmp_test.go @@ -81,7 +81,7 @@ func TestMemset(t *testing.T) { if i > setNum-1 { testVal = byte(0) } - if *indxBytePtr(mem, i) != testVal { + if (*[_Gi]byte)(mem)[i] != testVal { t.Errorf("mem doesn't match expected values at: %v", i) } } @@ -94,7 +94,7 @@ func TestGoStrToCStr(t *testing.T) { testData := []byte{'s', 't', 'r', 'i', 'n', 'g', '\000'} for i := 0; i < len(goStr); i++ { - val := *indxBytePtr(unsafe.Pointer(bStr), i) + val := (*[_Gi]byte)(unsafe.Pointer(bStr))[i] testVal := testData[i] if val != testVal { t.Errorf("Wanted: %v, but got: %v", testVal, val) @@ -111,7 +111,7 @@ func TestStrdup(t *testing.T) { newStr := strdup(bStr) for i := 0; i < len(goStr); i++ { - val := *indxBytePtr(unsafe.Pointer(newStr), i) + val := (*[_Gi]byte)(unsafe.Pointer(newStr))[i] testVal := testData[i] if val != testVal { t.Errorf("Wanted: %v, but got: %v", testVal, val) @@ -191,12 +191,3 @@ func TestDecPtr(t *testing.T) { t.Errorf(errMsg, valueInt64, int64Arr[inc]) } } - -func TestIndxBytePtr(t *testing.T) { - // Test how it deals with bytes - bytePtr := unsafe.Pointer(&byteArr[arrStart]) - valueByte := indxBytePtr(bytePtr, inc) - if *valueByte != byteArr[inc] { - t.Errorf(errMsg, valueByte, byteArr[inc]) - } -}