@@ -33,49 +33,35 @@ proto.zeroOut = function zeroOut() {
33
33
// Writes a 32 bit integer at offset
34
34
proto . int32Write = function int32Write ( number , offset ) {
35
35
offset = offset || 0 ;
36
- var unsigned = ( number < 0 ) ? ( number + 0x100000000 ) : number ;
37
- this [ offset ] = Math . floor ( unsigned / 0xffffff ) ;
38
- unsigned &= 0xffffff ;
39
- this [ offset + 1 ] = Math . floor ( unsigned / 0xffff ) ;
40
- unsigned &= 0xffff ;
41
- this [ offset + 2 ] = Math . floor ( unsigned / 0xff ) ;
42
- unsigned &= 0xff ;
43
- this [ offset + 3 ] = Math . floor ( unsigned ) ;
36
+ this [ offset ] = number >>> 24 ;
37
+ this [ offset + 1 ] = number >>> 16 ;
38
+ this [ offset + 2 ] = number >>> 8 ;
39
+ this [ offset + 3 ] = number >>> 0 ;
44
40
} ;
45
41
46
42
// Writes a 16 bit integer at offset
47
43
proto . int16Write = function int16Write ( number , offset ) {
48
44
offset = offset || 0 ;
49
- var unsigned = ( number < 0 ) ? ( number + 0x10000 ) : number ;
50
- this [ offset ] = Math . floor ( unsigned / 0xff ) ;
51
- unsigned &= 0xff ;
52
- this [ offset + 1 ] = Math . floor ( unsigned ) ;
45
+ this [ offset ] = number >>> 8 ;
46
+ this [ offset + 1 ] = number >>> 0 ;
53
47
}
54
48
55
49
// Reads a 32 bit integer from offset
56
50
proto . int32Read = function int32Read ( offset ) {
57
51
offset = offset || 0 ;
58
- var unsigned = this [ offset ] * 0x1000000 +
59
- this [ offset + 1 ] * 0x10000 +
60
- this [ offset + 2 ] * 0x100 +
61
- this [ offset + 3 ] ;
62
- return ( unsigned & 0x80000000 ) ? ( unsigned - 0x100000000 ) : unsigned
52
+ return this [ offset ] * 0x1000000 +
53
+ this [ offset + 1 ] << 16 +
54
+ this [ offset + 2 ] << 8 +
55
+ this [ offset + 3 ] ;
63
56
} ;
64
57
65
58
// Reads a 32 bit integer from offset
66
59
proto . int16Read = function int16Read ( offset ) {
67
60
offset = offset || 0 ;
68
- var unsigned = this [ offset ] * 0x100 +
69
- this [ offset + 1 ] ;
70
- return ( unsigned & 0x8000 ) ? ( unsigned - 0x10000 ) : unsigned
61
+ return this [ offset ] << 8 +
62
+ this [ offset + 1 ] ;
71
63
} ;
72
64
73
- Buffer . fromString = function fromString ( string ) {
74
- var b = new Buffer ( Buffer . byteLength ( string ) ) ;
75
- b . write ( string , 'utf8' ) ;
76
- return b ;
77
- }
78
-
79
65
Buffer . makeWriter = function makeWriter ( ) {
80
66
var data = [ ] ;
81
67
var writer ;
@@ -93,15 +79,15 @@ Buffer.makeWriter = function makeWriter() {
93
79
return writer ;
94
80
} ,
95
81
string : function pushString ( string ) {
96
- data . push ( Buffer . fromString ( string ) ) ;
82
+ data . push ( new Buffer ( string , 'utf8' ) ) ;
97
83
return writer ;
98
84
} ,
99
85
cstring : function pushCstring ( string ) {
100
- data . push ( Buffer . fromString ( string + "\0" ) ) ;
86
+ data . push ( new Buffer ( string + "\0" , 'utf8' ) ) ;
101
87
return writer ;
102
88
} ,
103
89
multicstring : function pushMulticstring ( fields ) {
104
- data . push ( Buffer . fromString ( fields . join ( "\0" ) + "\0\0" ) ) ;
90
+ data . push ( new Buffer ( fields . join ( "\0" ) + "\0\0" , 'utf8' ) ) ;
105
91
return writer ;
106
92
} ,
107
93
hash : function pushHash ( hash ) {
@@ -111,14 +97,14 @@ Buffer.makeWriter = function makeWriter() {
111
97
var key = keys [ i ] ;
112
98
pairs . push ( key + "\0" + hash [ key ] + "\0" ) ;
113
99
}
114
- data . push ( Buffer . fromString ( pairs . join ( "" ) + "\0" ) ) ;
100
+ data . push ( new Buffer ( pairs . join ( "" ) + "\0" , 'utf8' ) ) ;
115
101
return writer ;
116
102
}
117
103
} ;
118
104
writer = {
119
105
data : data ,
120
106
push : push ,
121
-
107
+
122
108
// Convert an array of buffers into a single buffer using memcopy
123
109
toBuffer : function toBuffer ( ) {
124
110
var total = 0 ;
@@ -192,7 +178,7 @@ proto.toReader = function toReader() {
192
178
193
179
// Test It
194
180
// var sys = require('sys');
195
- //
181
+ //
196
182
// var w = Buffer.makeWriter();
197
183
// w.push.int32(305419896);
198
184
// w.push.int16(4660);
@@ -215,4 +201,4 @@ proto.toReader = function toReader() {
215
201
// r.int32(),
216
202
// r.int16()
217
203
// ]);
218
- //
204
+ //
0 commit comments