1.1 --- a/jitcraft/SemanticAnalysis.cpp Tue Jul 03 00:50:36 2012 -0700
1.2 +++ b/jitcraft/SemanticAnalysis.cpp Tue Jul 03 00:54:40 2012 -0700
1.3 @@ -391,13 +391,12 @@
1.4 void
1.5 SemanticAnalysis::visit(VariableDeclaration *node)
1.6 {
1.7 - // :TODO: use locals
1.8 - Type *type = zone_->types()->getPrimitiveForTag(node->tag());
1.9 + Local<Type> type(zone_, zone_->types()->getPrimitiveForTag(node->tag()));
1.10 if (!type)
1.11 return;
1.12
1.13 if (node->postDimensions()) {
1.14 - Type *init = NULL;
1.15 + Local<Type> init(zone_);
1.16 if (node->initialization()) {
1.17 if ((init = visitAndApplyType(node->initialization())) == NULL)
1.18 return;
1.19 @@ -414,13 +413,13 @@
1.20 return;
1.21 }
1.22
1.23 - Type *check = init;
1.24 + Local<Type> check(zone_, init);
1.25 for (size_t i = node->postDimensions()->size() - 1; i < node->postDimensions()->size(); i--) {
1.26 Expression *expr = node->postDimensions()->at(i);
1.27 int size = -1;
1.28
1.29 if (expr) {
1.30 - Type *exprType = visitForLoad(expr);
1.31 + Local<Type> exprType(zone_, visitForLoad(expr));
1.32 if (!exprType)
1.33 return;
1.34
1.35 @@ -524,9 +523,7 @@
1.36 bool
1.37 SemanticAnalysis::preanalyze(FunctionStatement *node)
1.38 {
1.39 - // :TODO: use Local
1.40 -
1.41 - FixedArray *args = FixedArray::New(zone_, node->parameters()->size(), Heap::Tenure_Old);
1.42 + Local<FixedArray> args(zone_, FixedArray::New(zone_, node->parameters()->size(), Heap::Tenure_Old));
1.43 if (!args)
1.44 return false;
1.45
1.46 @@ -534,7 +531,7 @@
1.47 for (size_t i = 0; i < node->parameters()->size(); i++) {
1.48 Parameter *parameter = node->parameters()->at(i);
1.49
1.50 - Type *type = zone_->types()->getPrimitiveForTag(parameter->tag());
1.51 + Local<Type> type(zone_, zone_->types()->getPrimitiveForTag(parameter->tag()));
1.52 if (!type)
1.53 return false;
1.54
1.55 @@ -553,11 +550,11 @@
1.56 parameter->variable()->setType(type);
1.57 }
1.58
1.59 - Type *returnType = zone_->types()->getPrimitive(PrimitiveType_Int32);
1.60 + Local<Type> returnType(zone_, zone_->types()->getPrimitive(PrimitiveType_Int32));
1.61 if (!returnType)
1.62 return false;
1.63
1.64 - Type *funtype = zone_->types()->newFunction(returnType, args);
1.65 + Local<Type> funtype(zone_, zone_->types()->newFunction(returnType, args));
1.66 if (!funtype)
1.67 return false;
1.68