Merge branch 'fix_category_table' of https://github.com/jgoodman/Freeside into jgoodm...
authorIvan Kohler <ivan@freeside.biz>
Sat, 17 Jan 2015 02:38:06 +0000 (18:38 -0800)
committerIvan Kohler <ivan@freeside.biz>
Sat, 17 Jan 2015 02:38:06 +0000 (18:38 -0800)
FS/FS/class_Common.pm

index 455cb9f..01048ec 100644 (file)
@@ -122,14 +122,15 @@ sub _target_table {
 
 sub _target_column { 'classnum'; }
 
-use vars qw( $_category_table );
+use vars qw( %_category_table );
 sub _category_table {
-  return $_category_table if $_category_table;
   my $self = shift;
-  $_category_table = $self->table;
-  $_category_table =~ s/class/category/ # s/_class$/_category/
-    or die "can't determine an automatic category table for $_category_table";
-  $_category_table;
+  return $_category_table{ ref $self } ||= do {
+    my $category_table = $self->table;
+    $category_table =~ s/class/category/ # s/_class$/_category/
+      or die "can't determine an automatic category table for $category_table";
+    $category_table;
+  }
 }
 
 =head1 BUGS