本文整理汇总了C++中POV_FREE函数的典型用法代码示例。如果您正苦于以下问题:C++ POV_FREE函数的具体用法?C++ POV_FREE怎么用?C++ POV_FREE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了POV_FREE函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: POV_FREE
void Parser::FNSyntax_DeleteExpression(ExprNode *node)
{
ExprNode *temp = NULL;
for(ExprNode *i = node; i != NULL; i = i->next)
{
if(temp != NULL)
{
POV_FREE(temp);
}
FNSyntax_DeleteExpression(i->child);
if((i->op == OP_VARIABLE) || (i->op == OP_MEMBER))
{
POV_FREE(i->variable);
}
else if(i->op == OP_CALL)
{
if((i->call.token == FUNCT_ID_TOKEN) || (i->call.token == VECTFUNCT_ID_TOKEN))
dynamic_cast<FunctionVM*>(sceneData->functionContextFactory)->RemoveFunction(i->call.fn);
POV_FREE(i->call.name);
}
temp = i;
}
if(temp != NULL)
{
POV_FREE(temp);
}
}
示例2: FNSyntax_DeleteExpression
void FNSyntax_DeleteExpression(ExprNode *node)
{
ExprNode *temp = NULL;
for(ExprNode *i = node; i != NULL; i = i->next)
{
if(temp != NULL)
{
POV_FREE(temp);
}
FNSyntax_DeleteExpression(i->child);
if((i->op == OP_VARIABLE) || (i->op == OP_MEMBER))
{
POV_FREE(i->variable);
}
else if(i->op == OP_CALL)
{
if((i->call.token == FUNCT_ID_TOKEN) || (i->call.token == VECTFUNCT_ID_TOKEN))
POVFPU_RemoveFunction(i->call.fn);
POV_FREE(i->call.name);
}
temp = i;
}
if(temp != NULL)
{
POV_FREE(temp);
}
}
示例3: bezier_tree_deleter
void BicubicPatch::bezier_tree_deleter(BEZIER_NODE *Node)
{
int i;
BEZIER_CHILDREN *Children;
/* If this is an interior node then continue the descent. */
if (Node->Node_Type == BEZIER_INTERIOR_NODE)
{
Children = reinterpret_cast<BEZIER_CHILDREN *>(Node->Data_Ptr);
for (i = 0; i < Node->Count; i++)
{
bezier_tree_deleter(Children->Children[i]);
}
POV_FREE(Children);
}
else
{
if (Node->Node_Type == BEZIER_LEAF_NODE)
{
/* Free the memory used for the vertices. */
POV_FREE(Node->Data_Ptr);
}
}
/* Free the memory used for the node. */
POV_FREE(Node);
}
示例4: Destroy_Priority_Queue
void Destroy_Priority_Queue(PRIORITY_QUEUE *Queue)
{
if (Queue != NULL)
{
POV_FREE(Queue->Queue);
POV_FREE(Queue);
}
}
示例5: cleanup_gif_decoder
static void cleanup_gif_decoder ()
{
POV_FREE (dstack);
POV_FREE (suffix);
POV_FREE (prefix);
dstack = NULL;
suffix = NULL;
prefix = NULL;
}
示例6: POV_FREE
Polygon::~Polygon()
{
if (--(Data->References) == 0)
{
POV_FREE (Data->Points);
POV_FREE (Data);
}
Destroy_Transform(Trans);
}
示例7: Destroy_Spline
void Destroy_Spline(SPLINE * Spline)
{
if (Spline->ref_count <= 0)
throw POV_EXCEPTION_STRING("Internal error: Invalid spline reference count\n");
Spline->ref_count --;
if (Spline->ref_count == 0)
{
POV_FREE(Spline->SplineEntries);
POV_FREE(Spline);
}
}
示例8: Destroy_Transform
Lathe::~Lathe()
{
Destroy_Transform(Trans);
if (--(Spline->References) == 0)
{
Destroy_BCyl(Spline->BCyl);
POV_FREE(Spline->Entry);
POV_FREE(Spline);
}
}
示例9: POV_FREE
TraceThreadData::~TraceThreadData()
{
delete functionContext;
for(vector<GenericFunctionContextPtr>::iterator i = functionPatternContext.begin(); i != functionPatternContext.end(); ++i)
delete *i;
POV_FREE(Blob_Coefficients);
POV_FREE(Blob_Queue);
POV_FREE(isosurfaceData);
Fractal::Free_Iteration_Stack(Fractal_IStack);
delete surfacePhotonMap;
delete mediaPhotonMap;
delete[] Blob_Intervals;
for(vector<LightSource *>::iterator it = lightSources.begin(); it != lightSources.end(); it++)
Destroy_Object(*it);
}
示例10: GET
UCS2 *Parser::Parse_Substr(bool pathname)
{
UCS2 *str;
UCS2 *New;
int l, d;
GET(LEFT_PAREN_TOKEN);
str = Parse_String(pathname);
Parse_Comma();
l = (int)Parse_Float();
Parse_Comma();
d = (int)Parse_Float();
GET(RIGHT_PAREN_TOKEN);
if(((l + d - 1) > UCS2_strlen(str)) || (l < 0) || (d < 0))
Error("Illegal parameters in substr.");
New = reinterpret_cast<UCS2 *>(POV_MALLOC(sizeof(UCS2) * (d + 1), "temporary string"));
UCS2_strncpy(New, &(str[l - 1]), d);
New[d] = 0;
POV_FREE(str);
return New;
}
示例11: POV_FREE
IsoSurface::~IsoSurface()
{
if(--mginfo->refcnt == 0)
POV_FREE(mginfo);
delete Function;
Destroy_Transform(Trans);
}
示例12: Parse_String
std::string Parser::Parse_SysString(bool pathname, bool require)
{
UCS2 *cstr = Parse_String(pathname, require);
std::string ret(UCS2toSysString(cstr));
POV_FREE(cstr);
return ret;
}
示例13: POV_FREE
void Parser::Destroy_Function(FUNCTION_PTR Function)
{
if(Function != NULL)
{
sceneData->functionVM->RemoveFunction(*Function);
POV_FREE(Function);
}
}
示例14: Deinitialize_VLBuffer_Code
void Deinitialize_VLBuffer_Code()
{
if (Node_Queue != NULL)
{
POV_FREE(Node_Queue->Queue);
POV_FREE(Node_Queue);
}
if (VLBuffer_Queue != NULL)
{
Destroy_Priority_Queue(VLBuffer_Queue);
}
Node_Queue = NULL;
VLBuffer_Queue = NULL;
}
示例15: POV_FREE
void Parametric::Destroy_PrecompParVal()
{
if (PData == NULL)
return;
PData->use--;
if (PData->use == 0)
{
if (PData->flags & OK_X)
{
POV_FREE(PData->Low[0]);
POV_FREE(PData->Hi[0]);
}
if (PData->flags & OK_Y)
{
POV_FREE(PData->Low[1]);
POV_FREE(PData->Hi[1]);
}
if (PData->flags & OK_Z)
{
POV_FREE(PData->Low[2]);
POV_FREE(PData->Hi[2]);
}
POV_FREE(PData);
}
}