Commit Graph

39 Commits

Author SHA1 Message Date
nnhy be8266d7f4 修改时拷贝 2016-03-31 04:47:34 +00:00
nnhy a7558506e8 默认空字符串,使用内部数据区 2016-03-31 04:26:17 +00:00
nnhy af1f22406f 修正数字以十六进制显示的BUG 2016-03-21 02:41:37 +00:00
nnhy 165c6deefd 如果不是可写,在扩容检查时,也要进行扩容,避免内部不可写数据被修改 2016-03-21 01:24:23 +00:00
nnhy 16c562f249 有可能当前用的内存不是内部内存,然后要分配的内存小于内部内存,则直接使用内部,不需要释放 2016-03-19 08:38:51 +00:00
nnhy 2b1d195111 IP字符串解析为IPAddress成功,单一测试通过 2016-03-19 08:22:09 +00:00
nnhy 429248b026 增加String::Split,采用迭代式写法 2016-03-19 06:54:14 +00:00
nnhy 32c9e770ab String只需要重载一个Copy即可
修正GCC编译的一个错误
2016-03-17 14:31:59 +00:00
nnhy deffe20244 暂时不用SetBuffer 2016-03-15 06:23:31 +00:00
nnhy 102b42b33b 拷贝字符串到目标字符指针时,长度可能是-1,需要考虑 2016-03-14 04:57:34 +00:00
nnhy d1f6245d9b 所有NULL更换为nullptr,GCC要求更严格。
Sys.h头文件不再包含string.h,禁止SmartOS除了Type和String以外的地方使用内存管理函数
2016-03-14 04:28:04 +00:00
nnhy 8cf3a1e7d9 字符串头文件不能叫String.h,否则跟gcc内部的string.h冲突,倒置无法包含 2016-03-14 03:51:32 +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 1f448d6eac 设置数组长度。改变长度后,确保最后以0结尾 2016-03-11 15:25:59 +00:00
nnhy 992b979c59 String.Clear()导致错误释放了内存 2016-03-11 15:13:11 +00:00
nnhy 5e11ef18ce 废弃StringHelper,避免连加的时候出现太多碎片对象 2016-03-11 14:53:54 +00:00
nnhy 89a2f6dcd2 String不需要释放内存,由Array统一释放 2016-03-11 13:56:41 +00:00
nnhy ee50d7f033 字符串继承自Buffer 2016-03-11 08:57:17 +00:00
Stone eba9043046 除了Buffer其它任何地方不得使用memcpy/memset 2016-03-11 04:39:30 +00:00
nnhy 86c6535448 修正一个字节对齐的BUG,各个Config尽量用4字节对齐,特别是含有字符串String的类
MDK编译String::copy的时候,使用了 LDR R0, R1, [R5, 0x04]指令,而这个指令要求4字节对齐。
2016-03-10 10:02:30 +00:00
nnhy 6c7aff547b 整个SmartOS禁止使用strcpy/strncpy 2016-03-10 09:12:56 +00:00
nnhy a25c30c83d 通过单元测试发现字符串拷贝时的一个BUG 2016-03-10 08:55:38 +00:00
nnhy adeb9955cb 字符串设置单元测试完成,GetBytes/ToHex 2016-03-10 08:26:17 +00:00
nnhy 3c4dd0667e 完成构造函数测试 2016-03-10 07:03:35 +00:00
nnhy 5c31b3d483 字符串构造函数单元测试完成,测试通过 2016-03-10 03:45:29 +00:00
Stone 3109009b80 增强对数字转十六进制字符串的支持 2016-03-09 05:52:31 +00:00
Stone 386602e27c 字符串转Hex,要两个字符的大写 2016-03-09 03:52:07 +00:00
nnhy 11ec1084fd ulong => UInt64
_REV/_REV16 独立汇编实现,不依赖固件库
2016-03-07 10:46:10 +00:00
nnhy 3bb6e5fd7f 其实这里可以不用拷贝,内部直接使用这个指针,等第一次修改的时候再拷贝,不过那样过于复杂了 2016-03-06 12:13:05 +00:00
nnhy 402c24c7f5 !!!SmartOS在网关C上可启动,指示灯闪烁,DHCP失败
字符串增加标识,识别是内部缓冲区还是外部缓冲区,析构时以此为依据执行销毁
2016-03-06 11:26:05 +00:00
nnhy b72139033f 内存缓冲区Buffer作为最基础的内存数据包,只包含指针和长度!
Array作为变长内存数据包,可扩大
ByteArray直接继承自Array,脱离模板TArray
2016-03-06 11:01:01 +00:00
nnhy 6c55562e70 使用Lamda实现Split,编译通过,未测试 2016-03-05 12:15:45 +00:00
nnhy f78e0e4263 增加十六进制转字节数组的ToHex 2016-03-05 12:05:17 +00:00
nnhy 3c71960517 增加GetBytes和ToArray 2016-03-05 11:49:09 +00:00
nnhy 8a71c880ac !!!独立String,增强字符串连接等功能。
为了编译通过,注释了一些其它类的功能代码,慎用该版本!
2016-03-05 06:58:12 +00:00
nnhy 03c2b61dbf 删除以后不大可能用得到的内存管理和字符串管理 2015-10-28 13:55:42 +00:00
nnhy 540d38da36 2015-06-26 13:53:56 +00:00
nnhy 2f472bd894 移植MFC的CString,难以编译通过,大量宽字符函数不存在。保留代码作为参考,不使用 2015-06-26 12:57:26 +00:00