[Verse-dev] Method string fix

Emil Brink verse-dev@blender.org
Thu, 10 Jun 2004 16:10:46 +0200 (MEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-630072926-1086876646=:4232
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi.

Attached is a little quick patch I threw together against
v_pack_method.c. It fixes two problems reported to the list earlier
today:

1. Advance buffer pointer when unpacking string parameters when
   packing them into packet.

2. Use static storage for string parameters when unpacking. This is
   where the "quick" comes in, as in "and dirty". It uses a single
   fixed buffer of 2 KB to unpack string arguments into, assigning
   the vstring field of the VNParam to point into the buffer before
   unpacking the string there and advancing the pointer.

I'm not sure whether the fix for 2) is "good enough", but it is very
simple and fast, and does not use dynamic memory allocation. It is
not thread-safe, but then again I don't think the Verse API as a
whole is without it either.

Anyway, it makes the server not crash and actually return the proper
value for my string parameter, so I can continue with what I was
doing in the first place. Heh.

Hack on,

/Emikl
---559023410-630072926-1086876646=:4232
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="pack-method-string-fixes.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.58.0406101610460.4232@knatte.nada.kth.se>
Content-Description: 
Content-Disposition: attachment; filename="pack-method-string-fixes.patch"

SW5kZXg6IHZfcGFja19tZXRob2QuYw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9jdnNyb290L3ZlcnNlL3ZlcnNlL3ZfcGFja19tZXRo
b2QuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQ0KZGlmZiAtdSAtcjEu
NSB2X3BhY2tfbWV0aG9kLmMNCi0tLSB2X3BhY2tfbWV0aG9kLmMJMzAgQXBy
IDIwMDQgMDc6MDE6MzcgLTAwMDAJMS41DQorKysgdl9wYWNrX21ldGhvZC5j
CTEwIEp1biAyMDA0IDE0OjE0OjA1IC0wMDAwDQpAQCAtNDYsNyArNDYsNyBA
QA0KIAkJCQlidWZmZXJfcG9zICs9IHZucF9yYXdfcGFja19yZWFsNjQoJmJ1
ZltidWZmZXJfcG9zXSwgcGFyYW1zW2ldLnZyZWFsNjQpOw0NCiAJCQlicmVh
azsNDQogCQkJY2FzZSBWTl9PX01FVEhPRF9QVFlQRV9TVFJJTkcgOg0NCi0J
CQkJYnVmZmVyX3BvcyA9IHZucF9yYXdfcGFja19zdHJpbmcoJmJ1ZltidWZm
ZXJfcG9zXSwgcGFyYW1zW2ldLnZzdHJpbmcsICgxNTAwICsgOCAqIDE2KSAt
IGJ1ZmZlcl9wb3MpOw0NCisJCQkJYnVmZmVyX3BvcyArPSB2bnBfcmF3X3Bh
Y2tfc3RyaW5nKCZidWZbYnVmZmVyX3Bvc10sIHBhcmFtc1tpXS52c3RyaW5n
LCAoMTUwMCArIDggKiAxNikgLSBidWZmZXJfcG9zKTsNDQogCQkJYnJlYWs7
DQ0KIAkJCWNhc2UgVk5fT19NRVRIT0RfUFRZUEVfTk9ERSA6DQ0KIAkJCQli
dWZmZXJfcG9zICs9IHZucF9yYXdfcGFja191aW50MzIoJmJ1ZltidWZmZXJf
cG9zXSwgcGFyYW1zW2ldLnZub2RlKTsNDQpAQCAtMTE1LDEwICsxMTUsMTMg
QEANCiANDQogYm9vbGVhbiB2ZXJzZV9tZXRob2RfY2FsbF91bnBhY2soY29u
c3Qgdm9pZCAqZGF0YSwgdW5zaWduZWQgaW50IHBhcmFtX2NvdW50LCBWTk9Q
YXJhbSAqcGFyYW1zLCBjb25zdCBWTk9QYXJhbVR5cGUgKnBhcmFtX3R5cGUp
DQ0KIHsNDQotCXVuc2lnbmVkIGludCBpLCBqLCBidWZmZXJfcG9zLCBzaXpl
Ow0NCisJdW5zaWduZWQgaW50IGksIGosIGJ1ZmZlcl9wb3MgPSAwLCBzaXpl
LCBsZW47DQ0KIAljb25zdCB1aW50OCAqYnVmOw0NCisJc3RhdGljIGNoYXIg
c3RyaW5nWzIwNDhdOw0NCisJY2hhciAqc3RyaW5ncHV0ID0gc3RyaW5nOw0N
CisNDQogCWJ1ZiA9IGRhdGE7DQ0KLQlzaXplID0gdm5wX3Jhd191bnBhY2tf
dWludDE2KGJ1ZiwgMCk7DQ0KKwlidWZmZXJfcG9zICs9IHZucF9yYXdfdW5w
YWNrX3VpbnQxNihidWYsICZzaXplKTsNDQogCWZvcihpID0gMDsgaSA8IHBh
cmFtX2NvdW50OyBpKyspDQ0KIAl7DQ0KIAkJc3dpdGNoKHBhcmFtX3R5cGVb
aV0pDQ0KQEAgLTE0OCw3ICsxNTEsMTAgQEANCiAJCQkJYnVmZmVyX3BvcyAr
PSB2bnBfcmF3X3VucGFja19yZWFsNjQoJmJ1ZltidWZmZXJfcG9zXSwgJnBh
cmFtc1tpXS52cmVhbDY0KTsNDQogCQkJYnJlYWs7DQ0KIAkJCWNhc2UgVk5f
T19NRVRIT0RfUFRZUEVfU1RSSU5HIDoNDQotCQkJCWJ1ZmZlcl9wb3MgPSB2
bnBfcmF3X3VucGFja19zdHJpbmcoJmJ1ZltidWZmZXJfcG9zXSwgcGFyYW1z
W2ldLnZzdHJpbmcsICgxNTAwICsgOCAqIDE2KSAtIGJ1ZmZlcl9wb3MsIC0x
KTsNDQorCQkJCXBhcmFtc1tpXS52c3RyaW5nID0gc3RyaW5ncHV0Ow0NCisJ
CQkJbGVuID0gdm5wX3Jhd191bnBhY2tfc3RyaW5nKCZidWZbYnVmZmVyX3Bv
c10sIHN0cmluZ3B1dCwgKDE1MDAgKyA4ICogMTYpIC0gYnVmZmVyX3Bvcywg
LTEpOw0NCisJCQkJc3RyaW5ncHV0ICs9IGxlbjsNDQorCQkJCWJ1ZmZlcl9w
b3MgKz0gbGVuOw0NCiAJCQlicmVhazsNDQogCQkJY2FzZSBWTl9PX01FVEhP
RF9QVFlQRV9OT0RFIDoNDQogCQkJCWJ1ZmZlcl9wb3MgKz0gdm5wX3Jhd191
bnBhY2tfdWludDMyKCZidWZbYnVmZmVyX3Bvc10sICZwYXJhbXNbaV0udm5v
ZGUpOw0NCg==

---559023410-630072926-1086876646=:4232--