summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-12-13 09:12:50 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-12-13 10:11:44 +0000
commita15cdba6efb0c4ddb563b538cccdd78d8722a986 (patch)
tree9da8b14e53c6f60b29d025a1d6866d59e815e706
parent90ca7d9e2423afccfaece5f7ffef7fcdd3b5b1e7 (diff)
disassembler unused
-rw-r--r--basic/Library_sb.mk1
-rw-r--r--basic/source/classes/disas.cxx630
-rw-r--r--basic/source/classes/sb.cxx2
-rw-r--r--basic/source/inc/disas.hxx73
4 files changed, 1 insertions, 705 deletions
diff --git a/basic/Library_sb.mk b/basic/Library_sb.mk
index 5f5d3db08991..04dad27756c5 100644
--- a/basic/Library_sb.mk
+++ b/basic/Library_sb.mk
@@ -68,7 +68,6 @@ $(eval $(call gb_Library_add_exception_objects,sb,\
basic/source/basmgr/basicmanagerrepository \
basic/source/basmgr/basmgr \
basic/source/basmgr/vbahelper \
- basic/source/classes/disas \
basic/source/classes/errobject \
basic/source/classes/eventatt \
basic/source/classes/image \
diff --git a/basic/source/classes/disas.cxx b/basic/source/classes/disas.cxx
deleted file mode 100644
index 101ed3d90e87..000000000000
--- a/basic/source/classes/disas.cxx
+++ /dev/null
@@ -1,630 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <stdio.h>
-#include <string.h>
-#include <tools/stream.hxx>
-#include <basic/sbx.hxx>
-#include "sb.hxx"
-#include "iosys.hxx"
-#include "disas.hxx"
-
-
-static const char* pOp1[] = {
- "NOP",
-
- // Operators
- // the following operators have the same order as in
- // enum SbxVarOp
- "EXP", "MUL", "DIV", "MOD", "PLUS", "MINUS", "NEG",
- "EQ", "NE", "LT", "GT", "LE", "GE",
- "IDIV", "AND", "OR", "XOR", "EQV", "IMP", "NOT",
- "CAT",
- // End enum SbxVarOp
- "LIKE", "IS",
- // Load/Store
- "ARGC", // Create new Argv
- "ARGV", // TOS ==> current Argv
- "INPUT", // Input ==> TOS
- "LINPUT", // Line Input ==> TOS
- "GET", // get TOS
- "SET", // Save Object TOS ==> TOS-1
- "PUT", // TOS ==> TOS-1
- "CONST", // TOS ==> TOS-1, then ReadOnly
- "DIM", // DIM
- "REDIM", // REDIM
- "REDIMP", // REDIM PRESERVE
- "ERASE", // delete TOS
- // Branch
- "STOP", // End of program
- "INITFOR", // FOR-Variable init
- "NEXT", // FOR-Variable increment
- "CASE", // Begin CASE
- "ENDCASE", // End CASE
- "STDERR", // Default error handling
- "NOERROR", // No error handling
- "LEAVE", // leave UP
- // I/O
- "CHANNEL", // TOS = Channelnumber
- "PRINT", // print TOS
- "PRINTF", // print TOS in field
- "WRITE", // write TOS
- "RENAME", // Rename Tos+1 to Tos
- "PROMPT", // TOS = Prompt for Input
- "RESTART", // Define restart point
- "STDIO", // Switch to I/O channel 0
- // Misc
- "EMPTY", // Empty statement to stack
- "ERROR", // TOS = error code
- "LSET", // Save object TOS ==> TOS-1
- "RSET", // Save object TOS ==> TOS-1 (TODO: Same as above?)
- "REDIMP_ERASE",
- "INITFOREACH",
- "VBASET",
- "ERASE_CLEAR",
- "ARRAYACCESS",
- "BYVAL"
-};
-
-static const char* pOp2[] = {
- "NUMBER", // Load a numeric constant (+ID)
- "STRING", // Load a string constant (+ID)
- "CONSTANT", // Immediate Load (+value)
- "ARGN", // Save named args in argv (+StringID)
- "PAD", // Pad String to defined length (+length)
- // Branches
- "JUMP", // Jump to target (+Target)
- "JUMP.T", // evaluate TOS, conditional jump (+Target)
- "JUMP.F", // evaluate TOS, conditional jump (+Target)
- "ONJUMP", // evaluate TOS, jump into JUMP-table (+MaxVal)
- "GOSUB", // UP-Call (+Target)
- "RETURN", // UP-Return (+0 or Target)
- "TESTFOR", // Test FOR-Variable, increment (+Endlabel)
- "CASETO", // Tos+1 <= Case <= Tos, 2xremove (+Target)
- "ERRHDL", // Error-Handler (+Offset)
- "RESUME", // Resume after errors (+0 or 1 or Label)
- // I/O
- "CLOSE", // (+channel/0)
- "PRCHAR", // (+char)
- // Objects
- "SETCLASS", // Test Set + Classname (+StringId)
- "TESTCLASS", // Check TOS class (+StringId)
- "LIB", // Set Libname for Declare-Procs (+StringId)
- // New since Beta 3 (TODO: Which Beta3?)
- "BASED", // TOS is incremted about BASE, push BASE before
- "ARGTYP", // Convert last parameter in argv (+Type)
- "VBASETCLASS",
-};
-
-static const char* pOp3[] = {
- // All opcodes with two operands
- "RTL", // Load from RTL (+StringID+Typ)
- "FIND", // Load (+StringID+Typ)
- "ELEM", // Load element (+StringID+Typ)
- "PARAM", // Parameter (+Offset+Typ)
-
- // Branching
- "CALL", // Call DECLARE method (+StringID+Typ)
- "CALL.C", // Call Cdecl-DECLARE method (+StringID+Typ)
- "CASEIS", // Case-Test (+Test-Opcode+False-Target)
- "STMNT", // Start of a statement (+Line+Col)
-
- // I/O
- "OPEN", // (+SvStreamFlags+Flags)
-
- // Objects and variables
- "LOCAL", // Local variables (+StringID+Typ)
- "PUBLIC", // Modul global var (+StringID+Typ)
- "GLOBAL", // Global var (+StringID+Typ)
- "CREATE", // Create object (+StringId+StringId)
- "STATIC", // Create static object (+StringId+StringId)
- "TCREATE", // Create User defined Object (+StringId+StringId)
- "DCREATE", // Create User defined Object-Array kreieren (+StringId+StringId)
- "GLOBAL_P", // Define persistent global var (existing after basic restart)
- // P=PERSIST (+StringID+Typ)
- "FIND_G", // Searches for global var with special handling due to _GLOBAL_P
- "DCREATE_REDIMP", // Change dimensions of a user defined Object-Array (+StringId+StringId)
- "FIND_CM", // Search inside a class module (CM) to enable global search in time
- "PUBLIC_P", // Module global Variable (persisted between calls)(+StringID+Typ)
- "FIND_STATIC", // local static var lookup (+StringID+Typ)
-};
-
-static const char** pOps[3] = { pOp1, pOp2, pOp3 };
-
-typedef void( SbiDisas::*Func )( String& ); // Processing routines
-
-static const Func pOperand2[] = {
- &SbiDisas::StrOp, // Load a numeric constant (+ID)
- &SbiDisas::StrOp, // Load a string constant (+ID)
- &SbiDisas::ImmOp, // Immediate Load (+Wert)
- &SbiDisas::StrOp, // Save a named argument (+ID)
- &SbiDisas::ImmOp, // Strip String to fixed size (+length)
-
- // Branches
- &SbiDisas::LblOp, // Jump (+Target)
- &SbiDisas::LblOp, // eval TOS, conditional jump (+Target)
- &SbiDisas::LblOp, // eval TOS, conditional jump (+Target)
- &SbiDisas::OnOp, // eval TOS, jump in JUMP table (+MaxVal)
- &SbiDisas::LblOp, // UP call (+Target)
- &SbiDisas::ReturnOp, // UP Return (+0 or Target)
- &SbiDisas::LblOp, // test FOR-Variable, increment (+Endlabel)
- &SbiDisas::LblOp, // Tos+1 <= Case <= Tos), 2xremove (+Target)
- &SbiDisas::LblOp, // Error handler (+Offset)
- &SbiDisas::ResumeOp, // Resume after errors (+0 or 1 or Label)
-
- // I/O
- &SbiDisas::CloseOp, // (+channel/0)
- &SbiDisas::CharOp, // (+char)
-
- // Objects
- &SbiDisas::StrOp, // Test classname (+StringId)
- &SbiDisas::StrOp, // TESTCLASS, Check TOS class (+StringId)
- &SbiDisas::StrOp, // Set libname for declare procs (+StringId)
- &SbiDisas::ImmOp, // TOS is incremented about BASE erhoeht, BASE pushed before
- &SbiDisas::TypeOp, // Convert last parameter to/in(?) argv (+Typ)
- &SbiDisas::StrOp, // VBASETCLASS (+StringId)
-};
-
-static const Func pOperand3[] = {
- // All opcodes with two operands
- &SbiDisas::VarOp, // Load from RTL (+StringID+Typ)
- &SbiDisas::VarOp, // Load (+StringID+Typ)
- &SbiDisas::VarOp, // Load Element (+StringID+Typ)
- &SbiDisas::OffOp, // Parameter (+Offset+Typ)
-
- // Branch
- &SbiDisas::VarOp, // Call DECLARE-Method (+StringID+Typ)
- &SbiDisas::VarOp, // Call CDecl-DECLARE-Methode (+StringID+Typ)
- &SbiDisas::CaseOp, // Case-Test (+Test-Opcode+False-Target)
- &SbiDisas::StmntOp, // Statement (+Row+Column)
-
- // I/O
- &SbiDisas::StrmOp, // (+SvStreamFlags+Flags)
-
- // Objects
- &SbiDisas::VarDefOp, // Define local var (+StringID+Typ)
- &SbiDisas::VarDefOp, // Define Module global var (+StringID+Typ)
- &SbiDisas::VarDefOp, // Define global var (+StringID+Typ)
- &SbiDisas::Str2Op, // Create object (+StringId+StringId)
- &SbiDisas::VarDefOp, // Define static object (+StringID+Typ)
- &SbiDisas::Str2Op, // Create User defined Object (+StringId+StringId)
- &SbiDisas::Str2Op, // Create User defined Object-Array (+StringId+StringId)
- &SbiDisas::VarDefOp, // Define persistent global var P=PERSIST (+StringID+Typ)
- &SbiDisas::VarOp, // Searches for global var with special handling due to _GLOBAL_P
- &SbiDisas::Str2Op, // Redimensionate User defined Object-Array (+StringId+StringId)
- &SbiDisas::VarOp, // FIND_CM
- &SbiDisas::VarDefOp, // PUBLIC_P
- &SbiDisas::VarOp, // FIND_STATIC
-};
-
-// TODO: Why as method? Isn't a simple define sufficient?
-static const char* _crlf()
-{
-#if defined (UNX)
- return "\n";
-#else
- return "\r\n";
-#endif
-}
-
-SbiDisas::SbiDisas( SbModule* p, const SbiImage* q ) : rImg( *q ), pMod( p )
-{
- memset( cLabels, 0, 8192 );
- nLine = 0;
- nOff = 0;
- nPC = 0;
- nOp1 = nOp2 = nParts = 0;
- eOp = _NOP;
- // Set Label-Bits
- nOff = 0;
- while( Fetch() )
- {
- switch( eOp )
- {
- case _RESUME: if( nOp1 <= 1 ) break;
- case _RETURN: if( !nOp1 ) break;
- case _JUMP:
- case _JUMPT:
- case _JUMPF:
- case _GOSUB:
- case _TESTFOR:
- case _CASEIS:
- case _CASETO:
- case _ERRHDL:
- cLabels[ (nOp1 & 0xffff) >> 3 ] |= ( 1 << ( nOp1 & 7 ) );
- break;
- default: break;
- }
- }
- nOff = 0;
- // Add the publics
- for( sal_uInt16 i = 0; i < pMod->GetMethods()->Count(); i++ )
- {
- SbMethod* pMeth = PTR_CAST(SbMethod,pMod->GetMethods()->Get( i ));
- if( pMeth )
- {
- sal_uInt16 nPos = (sal_uInt16) (pMeth->GetId());
- cLabels[ nPos >> 3 ] |= ( 1 << ( nPos & 7 ) );
- }
- }
-}
-
-// Read current opcode
-sal_Bool SbiDisas::Fetch()
-{
- nPC = nOff;
- if( nOff >= rImg.GetCodeSize() )
- return sal_False;
- const unsigned char* p = (const unsigned char*)( rImg.GetCode() + nOff );
- eOp = (SbiOpcode) ( *p++ & 0xFF );
- if( eOp <= SbOP0_END )
- {
- nOp1 = nOp2 = 0;
- nParts = 1;
- nOff++;
- return sal_True;
- }
- else if( eOp <= SbOP1_END )
- {
- nOff += 5;
- if( nOff > rImg.GetCodeSize() )
- return sal_False;
- nOp1 = *p++; nOp1 |= *p++ << 8; nOp1 |= *p++ << 16; nOp1 |= *p++ << 24;
- nParts = 2;
- return sal_True;
- }
- else if( eOp <= SbOP2_END )
- {
- nOff += 9;
- if( nOff > rImg.GetCodeSize() )
- return sal_False;
- nOp1 = *p++; nOp1 |= *p++ << 8; nOp1 |= *p++ << 16; nOp1 |= *p++ << 24;
- nOp2 = *p++; nOp2 |= *p++ << 8; nOp2 |= *p++ << 16; nOp2 |= *p++ << 24;
- nParts = 3;
- return sal_True;
- }
- else
- return sal_False;
-}
-
-void SbiDisas::Disas( String& r )
-{
- r.Erase();
- String aText;
- nOff = 0;
- while( DisasLine( aText ) )
- {
- r += aText;
- r.AppendAscii( _crlf() );
- }
- aText.ConvertLineEnd();
-}
-
-sal_Bool SbiDisas::DisasLine( String& rText )
-{
- char cBuf[ 100 ];
- const char* pMask[] = {
- "%08" SAL_PRIXUINT32 " ",
- "%08" SAL_PRIXUINT32 " %02X ",
- "%08" SAL_PRIXUINT32 " %02X %08X ",
- "%08" SAL_PRIXUINT32 " %02X %08X %08X " };
- rText.Erase();
- if( !Fetch() )
- return sal_False;
-
- // New line?
- if( eOp == _STMNT && nOp1 != nLine )
- {
- // Find line
- String aSource = rImg.aOUSource;
- nLine = nOp1;
- sal_uInt16 n = 0;
- sal_uInt16 l = (sal_uInt16)nLine;
- while( --l ) {
- n = aSource.SearchAscii( "\n", n );
- if( n == STRING_NOTFOUND ) break;
- else n++;
- }
- // Show position
- if( n != STRING_NOTFOUND )
- {
- sal_uInt16 n2 = aSource.SearchAscii( "\n", n );
- if( n2 == STRING_NOTFOUND ) n2 = aSource.Len() - n;
- String s( aSource.Copy( n, n2 - n + 1 ) );
- sal_Bool bDone;
- do {
- bDone = sal_True;
- n = s.Search( '\r' );
- if( n != STRING_NOTFOUND ) bDone = sal_False, s.Erase( n, 1 );
- n = s.Search( '\n' );
- if( n != STRING_NOTFOUND ) bDone = sal_False, s.Erase( n, 1 );
- } while( !bDone );
- rText.AppendAscii( "; " );
- rText += s;
- rText.AppendAscii( _crlf() );
- }
- }
-
- // Label?
- const char* p = "";
- if( cLabels[ nPC >> 3 ] & ( 1 << ( nPC & 7 ) ) )
- {
- // Public?
- rtl::OString aByteMethName;
- for( sal_uInt16 i = 0; i < pMod->GetMethods()->Count(); i++ )
- {
- SbMethod* pMeth = PTR_CAST(SbMethod,pMod->GetMethods()->Get( i ));
- if( pMeth )
- {
- aByteMethName = rtl::OUStringToOString(pMeth->GetName(), osl_getThreadTextEncoding());
- if( pMeth->GetId() == nPC )
- {
- p = aByteMethName.getStr();
- break;
- }
- if( pMeth->GetId() >= nPC )
- break;
- }
- }
- snprintf( cBuf, sizeof(cBuf), pMask[ 0 ], nPC );
- rText.AppendAscii( cBuf );
- if( p && *p )
- {
- rText.AppendAscii( p );
- }
- else
- {
- // fix warning (now error) for "Lbl%04lX" format
- snprintf( cBuf, sizeof(cBuf), "Lbl%08" SAL_PRIXUINT32, nPC );
- rText.AppendAscii( cBuf );
- }
- rText += ':';
- rText.AppendAscii( _crlf() );
- }
- snprintf( cBuf, sizeof(cBuf), pMask[ nParts ], nPC, (sal_uInt16) eOp, nOp1, nOp2 );
-
- String aPCodeStr;
- aPCodeStr.AppendAscii( cBuf );
- int n = eOp;
- if( eOp >= SbOP2_START )
- n -= SbOP2_START;
- else if( eOp >= SbOP1_START )
- n -= SbOP1_START;
- aPCodeStr += '\t';
- aPCodeStr.AppendAscii( pOps[ nParts-1 ][ n ] );
- aPCodeStr += '\t';
- switch( nParts )
- {
- case 2: (this->*( pOperand2[ n ] ) )( aPCodeStr ); break;
- case 3: (this->*( pOperand3[ n ] ) )( aPCodeStr ); break;
- }
-
- rText += aPCodeStr;
-
- return sal_True;
-}
-
-// Read from StringPool
-void SbiDisas::StrOp( String& rText )
-{
- String aStr = rImg.GetString( (sal_uInt16)nOp1 );
- rtl::OString aByteString(rtl::OUStringToOString(aStr, RTL_TEXTENCODING_ASCII_US));
- const char* p = aByteString.getStr();
- if( p )
- {
- rText += '"';
- rText.AppendAscii( p );
- rText += '"';
- }
- else
- {
- rText.AppendAscii( "?String? " );
- rText += (sal_uInt16)nOp1;
- }
-}
-
-void SbiDisas::Str2Op( String& rText )
-{
- StrOp( rText );
- rText += ',';
- String s;
- nOp1 = nOp2;
- StrOp( s );
- rText += s;
-}
-
-// Immediate Operand
-void SbiDisas::ImmOp( String& rText )
-{
- rText += String::CreateFromInt32(nOp1);
-}
-
-// OnGoto Operand
-void SbiDisas::OnOp( String& rText )
-{
- rText += String::CreateFromInt32(nOp1 & 0x7FFF);
- if( nOp1 & 0x800 )
- rText.AppendAscii( "\t; Gosub" );
-}
-
-// Label
-void SbiDisas::LblOp( String& rText )
-{
- char cBuf[ 10 ];
- snprintf( cBuf, sizeof(cBuf), "Lbl%04" SAL_PRIXUINT32, nOp1 );
- rText.AppendAscii( cBuf );
-}
-
-// 0 or Label
-void SbiDisas::ReturnOp( String& rText )
-{
- if( nOp1 )
- LblOp( rText );
-}
-
-// 0, 1 or Label
-void SbiDisas::ResumeOp( String& rText )
-{
- switch( nOp1 )
- {
- case 1: rText.AppendAscii( "NEXT" ); break;
- case 2: LblOp( rText );
- }
-}
-
-// 0 or 1
-void SbiDisas::CloseOp( String& rText )
-{
- rText.AppendAscii( nOp1 ? "Channel" : "All" );
-}
-
-// Print character
-void SbiDisas::CharOp( String& rText )
-{
- const char* p = NULL;
- switch( nOp1 )
- {
- case 7: p = "'\\a'"; break;
- case 9: p = "'\\t'"; break;
- case 10: p = "'\\n'"; break;
- case 12: p = "'\\f'"; break;
- case 13: p = "'\\r'"; break;
- }
- if( p ) rText.AppendAscii( p );
- else if( nOp1 >= ' ' )
- rText += '\'',
- rText += (char) nOp1,
- rText += '\'';
- else
- rText.AppendAscii( "char " ),
- rText += (sal_uInt16)nOp1;
-}
-
-// Print var: String-ID and type
-void SbiDisas::VarOp( String& rText )
-{
- rText += rImg.GetString( (sal_uInt16)(nOp1 & 0x7FFF) );
- rText.AppendAscii( "\t; " );
- // The type
- sal_uInt32 n = nOp1;
- nOp1 = nOp2;
- TypeOp( rText );
- if( n & 0x8000 )
- rText.AppendAscii( ", Args" );
-}
-
-// Define variable: String-ID and type
-void SbiDisas::VarDefOp( String& rText )
-{
- rText += rImg.GetString( (sal_uInt16)(nOp1 & 0x7FFF) );
- rText.AppendAscii( "\t; " );
- // The Typ
- nOp1 = nOp2;
- TypeOp( rText );
-}
-
-// Print variable: Offset and Typ
-void SbiDisas::OffOp( String& rText )
-{
- rText += String::CreateFromInt32( nOp1 & 0x7FFF );
- rText.AppendAscii( "\t; " );
- // The type
- sal_uInt32 n = nOp1;
- nOp1 = nOp2;
- TypeOp( rText );
- if( n & 0x8000 )
- rText.AppendAscii( ", Args" );
-}
-
-// Data type
-void SbiDisas::TypeOp( String& rText )
-{
- // From 1996-01-19: type can contain flag for BYVAL (StepARGTYP)
- if( nOp1 & 0x8000 )
- {
- nOp1 &= 0x7FFF; // filter away the flag
- rText.AppendAscii( "BYVAL " );
- }
- if( nOp1 < 13 )
- {
- static char pTypes[][13] = {
- "Empty","Null","Integer","Long","Single","Double",
- "Currency","Date","String","Object","Error","Boolean",
- "Variant" };
-
- rText.AppendAscii( pTypes[ nOp1 ] );
- }
- else
- {
- rText.AppendAscii( "type " );
- rText += (sal_uInt16)nOp1;
- }
-}
-
-// sal_True-Label, condition Opcode
-void SbiDisas::CaseOp( String& rText )
-{
- LblOp( rText );
- rText += ',';
- rText.AppendAscii( pOp1[ nOp2 - SbxEQ + _EQ ] );
-}
-
-// Row, column
-void SbiDisas::StmntOp( String& rText )
-{
- rText += String::CreateFromInt32( nOp1 );
- rText += ',';
- sal_uInt32 nCol = nOp2 & 0xFF;
- sal_uInt32 nFor = nOp2 / 0x100;
- rText += String::CreateFromInt32( nCol );
- rText.AppendAscii( " (For-Level: " );
- rText += String::CreateFromInt32( nFor );
- rText += ')';
-}
-
-// open mode, flags
-void SbiDisas::StrmOp( String& rText )
-{
- char cBuf[ 10 ];
- snprintf( cBuf, sizeof(cBuf), "%04" SAL_PRIXUINT32, nOp1 );
- rText.AppendAscii( cBuf );
- if( nOp2 & SBSTRM_INPUT )
- rText.AppendAscii( ", Input" );
- if( nOp2 & SBSTRM_OUTPUT )
- rText.AppendAscii( ", Output" );
- if( nOp2 & SBSTRM_APPEND )
- rText.AppendAscii( ", Append" );
- if( nOp2 & SBSTRM_RANDOM )
- rText.AppendAscii( ", Random" );
- if( nOp2 & SBSTRM_BINARY )
- rText.AppendAscii( ", Binary" );
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 09be4c75a60b..85cc4107d861 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -39,11 +39,11 @@
#include <tools/rc.hxx>
#include <vcl/svapp.hxx>
#include <comphelper/processfactory.hxx>
+#include "image.hxx"
#include "sbunoobj.hxx"
#include "sbjsmeth.hxx"
#include "sbjsmod.hxx"
#include "sbintern.hxx"
-#include "disas.hxx"
#include "runtime.hxx"
#include <basic/sbuno.hxx>
#include <basic/sbobjmod.hxx>
diff --git a/basic/source/inc/disas.hxx b/basic/source/inc/disas.hxx
deleted file mode 100644
index c1f42e90c567..000000000000
--- a/basic/source/inc/disas.hxx
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DISAS_HXX
-#define _DISAS_HXX
-
-#include "image.hxx"
-#include "opcodes.hxx"
-// find a place for this limit ( also used in
-class SvStream;
-#define MAX_LABELS 0x2000L
-class SbiDisas {
- const SbiImage& rImg;
- SbModule* pMod;
- char cLabels[ MAX_LABELS ]; // bit vector for labels
- sal_uInt32 nOff; // current position
- sal_uInt32 nPC; // position of the opcode
- SbiOpcode eOp; // opcode
- sal_uInt32 nOp1, nOp2; // operands
- sal_uInt32 nParts; // 1, 2 or 3
- sal_uInt32 nLine; // current line
- sal_Bool DisasLine( String& );
- sal_Bool Fetch(); // next opcode
-public:
- SbiDisas( SbModule*, const SbiImage* );
- void Disas( String& );
- // DO NOT CALL
- void StrOp( String& );
- void Str2Op( String& );
- void ImmOp( String& );
- void OnOp( String& );
- void LblOp( String& );
- void ReturnOp( String& );
- void ResumeOp( String& );
- void CloseOp( String& );
- void CharOp( String& );
- void VarOp( String& );
- void VarDefOp( String& );
- void OffOp( String& );
- void TypeOp( String& );
- void CaseOp( String& );
- void StmntOp( String& );
- void StrmOp( String& );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */