version 1.8, 2001/07/10 22:31:14
|
version 1.14, 2002/06/01 00:56:34
|
|
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
|
// The Open Group, Tivoli Systems |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
} | } |
| |
template<class T> | template<class T> |
inline void Destroy(T* ptr) |
inline void CopyToRaw(T* to, const T* from, Uint32 size) |
{ |
|
ptr->~T(); |
|
} |
|
|
|
template<class T, class U> |
|
inline void CopyToRaw(T* to, const U* from, Uint32 size) |
|
{ | { |
while (size--) | while (size--) |
new(to++) T(*from++); |
{ |
|
// The following fails on TRU64: |
|
// new(to++) T(*from++); |
|
// Probably a compiler error so I changed it to this: |
|
// Mike Brasher |
|
|
|
new(to) T(*from); |
|
to++; |
|
from++; |
|
} |
} | } |
| |
inline void CopyToRaw(Boolean* to, const Boolean* from, Uint32 size) | inline void CopyToRaw(Boolean* to, const Boolean* from, Uint32 size) |
|
|
inline void InitializeRaw(T* items, Uint32 size) | inline void InitializeRaw(T* items, Uint32 size) |
{ | { |
while (size--) | while (size--) |
items++->~T(); |
{ |
|
new(items) T(); |
|
items++; |
|
} |
} | } |
| |
#define PEGASUS_MEMORY_FUNCTIONS(T) \ | #define PEGASUS_MEMORY_FUNCTIONS(T) \ |
inline void Destroy(T*, Uint32) { } \ | inline void Destroy(T*, Uint32) { } \ |
inline void Destroy(T*) { } \ |
|
inline void InitializeRaw(T* items, Uint32 size) { Zeros(items, size); } | inline void InitializeRaw(T* items, Uint32 size) { Zeros(items, size); } |
| |
PEGASUS_MEMORY_FUNCTIONS(char*) | PEGASUS_MEMORY_FUNCTIONS(char*) |