mirror of
https://github.com/danbulant/node-x11
synced 2026-06-16 05:01:28 +00:00
glx error parsers #49
This commit is contained in:
parent
0113db66af
commit
73dda10b1a
2 changed files with 32 additions and 17 deletions
|
|
@ -294,6 +294,28 @@ exports.requireExt = function(display, callback)
|
|||
return require('./glxrender')(this, ctx);
|
||||
}
|
||||
|
||||
var errors = [
|
||||
"context",
|
||||
"contect state",
|
||||
"drawable",
|
||||
"pixmap",
|
||||
"context tag",
|
||||
"current window",
|
||||
"Render request",
|
||||
"RenderLarge request",
|
||||
"(unsupported) VendorPrivate request",
|
||||
"FB config",
|
||||
"pbuffer",
|
||||
"current drawable",
|
||||
"window"
|
||||
];
|
||||
|
||||
errors.forEach(function(message, code) {
|
||||
X.errorParsers[ext.firstError + code] = function(err) {
|
||||
err.message = "GLX: Bad " + message;
|
||||
};
|
||||
});
|
||||
|
||||
callback(ext);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
27
lib/xcore.js
27
lib/xcore.js
|
|
@ -418,7 +418,6 @@ XClient.prototype.expectReplyHeader = function()
|
|||
var error = new Error();
|
||||
error.error = error_code;
|
||||
error.seq = seq_num;
|
||||
error.message = xerrors.errorText[error_code];
|
||||
if (client.options.debug) {
|
||||
error.longstack = client.seq2stack[error.seq]
|
||||
console.log(client.seq2stack[error.seq].stack);
|
||||
|
|
@ -426,24 +425,18 @@ XClient.prototype.expectReplyHeader = function()
|
|||
|
||||
// unpack error packet (32 bytes for all error types, 8 of them in CCSL header)
|
||||
client.pack_stream.get(24, function(buf) {
|
||||
|
||||
var res = buf.unpack('SC');
|
||||
error.message = xerrors.errorText[error_code];
|
||||
error.badParam = bad_value;
|
||||
error.minorOpcode = res[0];
|
||||
error.majorOpcode = res[1];
|
||||
|
||||
var extUnpacker = client.errorParsers[type];
|
||||
if (extUnpacker) {
|
||||
var event = extUnpacker(type, seq_num, bad_value, body);
|
||||
client.emit(error, event);
|
||||
client.expectReplyHeader();
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: dispatch, use sequence number
|
||||
//TODO: add more generic way to read common values
|
||||
// if (error_code == 14)
|
||||
{
|
||||
var res = buf.unpack('SC');
|
||||
error.badParam = bad_value;
|
||||
error.minorOpcode = res[0];
|
||||
error.majorOpcode = res[1];
|
||||
var extUnpacker = client.errorParsers[error_code];
|
||||
if (extUnpacker) {
|
||||
extUnpacker(error, error_code, seq_num, bad_value, buf);
|
||||
}
|
||||
|
||||
var handler = client.replies[seq_num];
|
||||
if (handler) {
|
||||
var callback = handler[1];
|
||||
|
|
|
|||
Loading…
Reference in a new issue