Commit Graph

151 Commits

Author SHA1 Message Date
nnhy b5cadce3a3 修正ByteArray构造函数的一个BUG 2016-04-01 06:17:09 +00:00
nnhy 216d641640 0开始时,允许截取0长度 2016-03-31 10:03:44 +00:00
nnhy f8c1b56f9e 修正Array内存泄漏的BUG,单元测试通过 2016-03-31 05:00:43 +00:00
nnhy 34ef701c6d DNS故障源自于Array=Buffer数据拷贝时,后面的Buffer被隐式转换为Array
为了避免造成不良影响,尽可能的把所有单参数的构造函数声明为不允许隐式转换

测试通过
2016-03-30 04:04:39 +00:00
nnhy b4c26208f1 2016-03-30 03:10:12 +00:00
nnhy 20c8000af0 赋值运算符原则:
1,赋值运算拷贝长度和数据,核心语义为拷贝一份数据区
2,左值长度大于等于右值时,左值长度变小
3,左值长度小于右值时,左值尝试SetLength扩容
4,如果扩容失败,调试版断言失败,发行版左值长度保持不变

单元测试通过
2016-03-30 03:03:45 +00:00
nnhy 54bc058a0f 修正Copy时判断长度和剩余量逻辑错误 2016-03-30 01:52:58 +00:00
nnhy 8ce0c2e22b 发现Array有BUG,补充完成单元测试,测试未通过 2016-03-29 08:57:27 +00:00
nnhy 45b55d5dd9 可能需要先扩容,否则Buffer拷贝时,长度可能不准确 2016-03-29 07:36:19 +00:00
nnhy f4a3eb4ca8 不指定长度,又没有剩余量,无法拷贝 2016-03-21 02:23:26 +00:00
nnhy 1cbcdff576 2016-03-21 01:50:31 +00:00
nnhy 165c6deefd 如果不是可写,在扩容检查时,也要进行扩容,避免内部不可写数据被修改 2016-03-21 01:24:23 +00:00
nnhy 16c562f249 有可能当前用的内存不是内部内存,然后要分配的内存小于内部内存,则直接使用内部,不需要释放 2016-03-19 08:38:51 +00:00
nnhy b0c7e1595c 集体修改断言 2016-03-18 01:48:17 +00:00
nnhy 32c9e770ab String只需要重载一个Copy即可
修正GCC编译的一个错误
2016-03-17 14:31:59 +00:00
nnhy d005b00ce2 !!!开放Buffer的赋值运算符重载,意为拷贝内存和长度。
当左边长度不足时,调试版断言失败,发行版截断拷贝
2016-03-17 14:14:45 +00:00
nnhy 74b1ac61e6 考虑到重叠的情况 2016-03-17 13:39:40 +00:00
nnhy 7c420049ad Buffer自我拷贝时,只设置长度,然后直接返回长度,代表已拷贝。
令牌配置和微网配置需要在Load之后重新设置扩展属性的长度,ByteArray需要保存之前把长度读取出来。
2016-03-17 11:39:20 +00:00
nnhy 97a0c815e5 修正对象转为Buffer的模板的BUG 2016-03-16 04:09:05 +00:00
nnhy deffe20244 暂时不用SetBuffer 2016-03-15 06:23:31 +00:00
nnhy bef7df0d7c 使用字符串替代字符指针操作,未测试 2016-03-14 05:06:04 +00:00
nnhy 0f799e189a 这里逻辑可以考虑修改为,当len大于内部长度时,直接用内部长度而不报错,方便应用层免去比较长度的啰嗦 2016-03-14 04:40:27 +00:00
nnhy 1b26bdb65e 废弃ByteArray的拷贝构造函数,以免引起误解 2016-03-11 16:54:44 +00:00
nnhy 19ac9be732 完善字符串move逻辑
确保字符串拷贝进出都有零结束符
2016-03-11 16:05:46 +00:00
nnhy 2bdad9a83b ByteArray构造没有错,必须用Arr作为容量,而应该另外设置长度 2016-03-11 14:56:15 +00:00
nnhy 681594ecd8 修正ByteArray初始化错误的BUG,该BUG倒置W5500驱动设置远程IP地址时Remote.Address.ToArray()出错,本来4字节的缓冲区变成64字节,导致以太网无法收发数据。
网关C测试以太网可用
2016-03-11 14:22:19 +00:00
nnhy 89a2f6dcd2 String不需要释放内存,由Array统一释放 2016-03-11 13:56:41 +00:00
nnhy bdfd8e6273 Array => Buffer 2016-03-11 13:03:38 +00:00
nnhy 23fbc28860 修正拷贝BUG 2016-03-11 12:45:31 +00:00
nnhy d710c33435 Buffer的赋值构造函数,不明确要不要拷贝长度,无法解释用法,暂时注释 2016-03-11 12:34:46 +00:00
nnhy ae53456bb0 //Buffer& operator = (const Buffer& rhs); // 无法解释用法,暂时注释 2016-03-11 12:17:44 +00:00
nnhy 8538ff7816 2016-03-11 08:58:19 +00:00
nnhy ee50d7f033 字符串继承自Buffer 2016-03-11 08:57:17 +00:00
cdyong 722e004e0a +1 会影响 偶数个数输出符号 2016-03-11 08:09:54 +00:00
Stone eba9043046 除了Buffer其它任何地方不得使用memcpy/memset 2016-03-11 04:39:30 +00:00
Stone 4fa396e1c5 统一Buffer.ToHex,废除Array.ToHex/ByteArray.ToHex 2016-03-11 04:06:23 +00:00
Stone bd753fc92c Buffer.ToHex得到的字符串加上横杠 2016-03-11 03:47:27 +00:00
Stone b57f9b4997 完成Buffer::ToHex,调整Sub,增加一个参数
编译通过,未测试
2016-03-10 17:07:49 +00:00
nnhy adeb9955cb 字符串设置单元测试完成,GetBytes/ToHex 2016-03-10 08:26:17 +00:00
Stone 75fe354b47 屏蔽Buffer/Array的拷贝构造函数,避免产生异议 2016-03-09 03:43:25 +00:00
Stone 1739720eb1 _REV在Sys实现,还是得要调用固件库,方便兼容MDK/GCC两家编译器 2016-03-09 00:39:53 +00:00
nnhy ba51c2b068 Buffer增加布尔型运算符重载 2016-03-08 11:17:24 +00:00
nnhy 855a7af048 建立vs项目 2016-03-08 10:13:05 +00:00
nnhy cb465449bb GCC编译更加严谨,能够把一些隐藏的BUG给暴露出来 2016-03-08 09:20:53 +00:00
nnhy 11ec1084fd ulong => UInt64
_REV/_REV16 独立汇编实现,不依赖固件库
2016-03-07 10:46:10 +00:00
nnhy 28b5b92b12 修正Array/ByteArray中索引运算符的BUG
发现RC4加密算法有严重问题,借助BUG才能用,修正BUG后无法使用
2016-03-07 10:12:14 +00:00
nnhy 1102091f30 完善Array/ByteArray的构造函数和赋值构造函数 2016-03-07 03:25:31 +00:00
nnhy d4c8507277 修正ByteArray::ToHex 2016-03-06 13:02:29 +00:00
nnhy b72139033f 内存缓冲区Buffer作为最基础的内存数据包,只包含指针和长度!
Array作为变长内存数据包,可扩大
ByteArray直接继承自Array,脱离模板TArray
2016-03-06 11:01:01 +00:00
Stone 243de19352 分离出来内存缓冲区Buffer,编译通过,未测试! 2016-03-06 02:14:53 +00:00