FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
DirectXShaderCompiler/lib/Support/SmallVector.cpp at main · microsoft/DirectXShaderCompiler · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
microsoft
/
DirectXShaderCompiler
Public
Notifications
You must be signed in to change notification settings
Fork
897
Star
3.6k
Code
Issues
654
Pull requests
140
Discussions
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
DirectXShaderCompiler
/
lib
/
Support
/
SmallVector.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
38 lines (34 loc) · 1.45 KB
Breadcrumbs
DirectXShaderCompiler
/
lib
/
Support
/
SmallVector.cpp
Copy path
File metadata and controls
38 lines (34 loc) · 1.45 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
===- llvm/ADT/SmallVector.cpp - 'Normally small' vectors ----------------===//
//
//
The LLVM Compiler Infrastructure
//
//
This file is distributed under the University of Illinois Open Source
//
License. See LICENSE.TXT for details.
//
//
===----------------------------------------------------------------------===//
//
//
This file implements the SmallVector class.
//
//
===----------------------------------------------------------------------===//
#
include
"
llvm/ADT/SmallVector.h
"
using
namespace
llvm
;
//
/ grow_pod - This is an implementation of the grow() method which only works
//
/ on POD-like datatypes and is out of line to reduce code duplication.
void
SmallVectorBase::grow_pod
(
void
*FirstEl,
size_t
MinSizeInBytes,
size_t
TSize) {
size_t
CurSizeBytes =
size_in_bytes
();
size_t
NewCapacityInBytes =
2
*
capacity_in_bytes
() + TSize;
//
Always grow.
if
(NewCapacityInBytes < MinSizeInBytes)
NewCapacityInBytes = MinSizeInBytes;
//
HLSL Change Begin - Use overridable operator new.
void
*NewElts =
new
char
[NewCapacityInBytes];
if
(CurSizeBytes >
0
)
memcpy
(NewElts,
this
->
BeginX
, CurSizeBytes);
if
(BeginX !=
nullptr
&& BeginX != FirstEl)
delete[]
(
char
*)
this
->
BeginX
;
assert
(NewElts &&
"
Out of memory
"
);
//
HLSL Change End - Use overridable operator new.
this
->
EndX
= (
char
*)NewElts+CurSizeBytes;
this
->
BeginX
= NewElts;
this
->
CapacityX
= (
char
*)
this
->
BeginX
+ NewCapacityInBytes;
}
Back
|
FazBrowse Home
|
New Git URL