1
0
mirror of https://github.com/golang/go synced 2024-11-22 03:24:41 -07:00

xgb: fix request length and request size.

R=nigeltao_golang, rsc
CC=golang-dev
https://golang.org/cl/759041
This commit is contained in:
Firmansyah Adiputra 2010-03-26 09:21:09 -07:00 committed by Russ Cox
parent 5bb29fb116
commit dab40b5880
2 changed files with 18 additions and 15 deletions

View File

@ -8,6 +8,7 @@ from os.path import basename, exists
import getopt
import sys
import re
import math
_ns = None
@ -345,20 +346,22 @@ def go_complex_writer(self, name, void):
go('func (c *Conn) %sRequest(', func_name)
go_complex_writer_arguments(param_fields, "Cookie {")
fixedtotal = structsize(self.fields)
if fixedtotal <= 32:
go(' b := c.scratch[0:%d]', fixedtotal)
fixedlength = math.ceil(float(structsize(self.fields)) / float(4))
fixedsize = fixedlength * 4
if fixedsize <= 32:
go(' b := c.scratch[0:%d]', fixedsize)
else:
go(' b := make([]byte, %d)', fixedtotal)
go(' b := make([]byte, %d)', fixedsize)
firstvar = 0
for field in wire_fields:
if not field.type.fixed_size():
if not firstvar:
firstvar = 1
go(' n := %d', fixedtotal)
go(' n := %d', fixedsize)
go(' n += pad(%s * %d)', go_accessor_expr(field.type.expr, '', True), field.type.size)
if not firstvar:
go(' put16(b[2:], %d)', fixedtotal / 4)
go(' put16(b[2:], %d)', fixedlength)
else:
go(' put16(b[2:], uint16(n / 4))')
go(' b[0] = %s', self.opcode)

View File

@ -2427,8 +2427,8 @@ func (c *Conn) ListFontsWithInfoReply(cookie Cookie) (*ListFontsWithInfoReply, o
}
func (c *Conn) SetFontPath(FontQty uint16, Path []byte) {
b := c.scratch[0:6]
n := 6
b := c.scratch[0:8]
n := 8
n += pad(len(Path) * 1)
put16(b[2:], uint16(n/4))
b[0] = 51
@ -3553,8 +3553,8 @@ func (c *Conn) ListExtensionsReply(cookie Cookie) (*ListExtensionsReply, os.Erro
}
func (c *Conn) ChangeKeyboardMapping(KeycodeCount byte, FirstKeycode byte, KeysymsPerKeycode byte, Keysyms []Keysym) {
b := c.scratch[0:6]
n := 6
b := c.scratch[0:8]
n := 8
n += pad((int(KeycodeCount) * int(KeysymsPerKeycode)) * 4)
put16(b[2:], uint16(n/4))
b[0] = 100
@ -3566,8 +3566,8 @@ func (c *Conn) ChangeKeyboardMapping(KeycodeCount byte, FirstKeycode byte, Keysy
}
func (c *Conn) GetKeyboardMappingRequest(FirstKeycode byte, Count byte) Cookie {
b := c.scratch[0:6]
put16(b[2:], 1)
b := c.scratch[0:8]
put16(b[2:], 2)
b[0] = 101
b[4] = FirstKeycode
b[5] = Count
@ -3733,8 +3733,8 @@ const (
)
func (c *Conn) SetScreenSaver(Timeout int16, Interval int16, PreferBlanking byte, AllowExposures byte) {
b := c.scratch[0:10]
put16(b[2:], 2)
b := c.scratch[0:12]
put16(b[2:], 3)
b[0] = 107
put16(b[4:], uint16(Timeout))
put16(b[6:], uint16(Interval))