| 843 | |
| 844 | protected: |
| 845 | dynamic_data_t* AddDynamicData() |
| 846 | { |
| 847 | if (mnDataUsed >= mnDataSize) |
| 848 | { |
| 849 | size_t new_size = mnDataSize * 2; |
| 850 | dynamic_data_t* p = (dynamic_data_t*)mxAlloc.Alloc(new_size * sizeof(dynamic_data_t)); |
| 851 | memcpy(p, mpData, mnDataUsed * sizeof(dynamic_data_t)); |
| 852 | |
| 853 | if (mnDataSize > DATA_SIZE) |
| 854 | { |
| 855 | mxAlloc.Free(mpData, mnDataSize * sizeof(dynamic_data_t)); |
| 856 | } |
| 857 | |
| 858 | mpData = p; |
| 859 | mnDataSize = new_size; |
| 860 | } |
| 861 | |
| 862 | return mpData + mnDataUsed++; |
| 863 | } |
| 864 | |
| 865 | char* AddBuffer(size_t need_size) |
| 866 | { |